2024-03-29 12:40:57 发布
网友
当您试图用()调用一个不是callable的对象时,就会发生此错误。
()
可调用对象可以是函数或类(实现__call__方法)。根据Python Docs:
__call__
object.__call__(self[, args...]): Called when the instance is “called” as a function
例如:
x = 1 print x()
x不是可调用的对象,但您正试图将其作为可调用对象来调用。此示例生成错误:
x
TypeError: 'int' object is not callable
为了更好地理解什么是可调用的对象read this answer in another SO post.
当您试图调用不是函数的对象时,就会发生此操作,如()。例如,这将产生错误:
>>> a = 5 >>> a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable
如果类实例定义了方法__call__,则也可以调用它们
导致此错误的一个常见错误是试图查找list或dictionary元素,但使用括号而不是方括号,即(0)而不是[0]
(0)
[0]
另一个答案详细说明了错误的原因。一个可能的原因(检查)可能是你的类有一个同名的变量和方法,然后你调用它。Python使用()以可调用的方式访问变量。
例如,A类定义了self.a和self.a():
self.a
self.a()
>>> class A: ... def __init__(self, val): ... self.a = val ... def a(self): ... return self.a ... >>> my_a = A(12) >>> val = my_a.a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable >>>
当您试图用
()
调用一个不是callable的对象时,就会发生此错误。可调用对象可以是函数或类(实现
__call__
方法)。根据Python Docs:例如:
x
不是可调用的对象,但您正试图将其作为可调用对象来调用。此示例生成错误:为了更好地理解什么是可调用的对象read this answer in another SO post.
当您试图调用不是函数的对象时,就会发生此操作,如
()
。例如,这将产生错误:如果类实例定义了方法
__call__
,则也可以调用它们导致此错误的一个常见错误是试图查找list或dictionary元素,但使用括号而不是方括号,即
(0)
而不是[0]
另一个答案详细说明了错误的原因。一个可能的原因(检查)可能是你的类有一个同名的变量和方法,然后你调用它。Python使用
()
以可调用的方式访问变量。例如,A类定义了
self.a
和self.a()
:相关问题 更多 >
编程相关推荐