错误原因
报错信息中“'Ellipsis' object is not callable”提示中的“Ellipsis”是Python内置的特殊对象之一,用来表示省略号。常常用于切片操作或函数参数中。在以下场景中可能出现这个错误:
将省略号作为函数的参数时
如果将省略号用作函数的参数,会导致 TypeError 异常的出现。例如:
def my_function(...):
pass
my_function()
执行上述代码时会报错,提示“TypeError: 'Ellipsis' object is not callable”。
使用省略号作为切片操作的索引
省略号也可以用于切片操作中,表示跳过某些维度。但是如果使用省略号作为切片操作的索引时,也会导致 TypeError 异常的出现。例如:
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a[...]
执行上述代码时会报错,提示“TypeError: 'Ellipsis' object is not callable”。
解决方法
避免将省略号作为函数参数
如果要定义不定数量的参数,可以用 *args 和 **kwargs。例如:
def my_function(*args, **kwargs):
pass
my_function()
使用省略号正确进行切片操作
如果要使用省略号作为切片操作的索引,需要保证省略号的使用是正确的。例如:
a = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
a[..., 1]
上述代码中,使用了 [..., 1]
的切片操作,表示省略第一个维度,取第二个维度的所有元素中的第二个元素。此时不会出现“TypeError: 'Ellipsis' object is not callable”的错误。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python报”TypeError: ‘Ellipsis’ object is not callable “的原因以及解决办法 - Python技术站