作为 Python 的初级开发人员,我在控制台中多次看到这个错误信息,但我并不完全理解它的含义。
有谁能大致告诉我,什么样的操作会产生这个错误?
当您尝试用 () 调用一个不是 callable 的对象时,就会出现该错误。
()
可调用对象可以是一个函数或一个类(实现了 __call__ 方法)。根据 Python 文档:
__call__
object.call(self[, args...]):当实例作为函数被 "调用 "时调用
例如
x = 1 print x()
x 不是可调用对象,但您却试图将它当作可调用对象来调用。此示例会产生错误:
x
TypeError: 'int' object is not callable
为了更好地理解什么是可调用对象请阅读另一篇 SO 帖子中的答案
当您尝试调用一个不是函数的对象时,就会发生该操作,如使用 ()。例如,这会产生错误:
>>> a = 5 >>> a() Traceback (most recent call last): File "", line 1, in TypeError: 'int' object is not callable
如果类实例定义了方法 __call__,也可以被调用。
导致此错误的一个常见错误是试图查找一个列表或字典元素,但使用了小括号而不是方括号,例如(0)而不是[0]。
(0)
[0]
当你试图调用不可调用对象时,就会出现异常。可调用对象包括(函数、方法、带有 __call__ 的对象)
>>> f = 1 >>> callable(f) False >>> f() Traceback (most recent call last): File "", line 1, in TypeError: 'int' object is not callable
当您尝试用
()
调用一个不是 callable 的对象时,就会出现该错误。可调用对象可以是一个函数或一个类(实现了
__call__
方法)。根据 Python 文档:例如
x
不是可调用对象,但您却试图将它当作可调用对象来调用。此示例会产生错误:为了更好地理解什么是可调用对象请阅读另一篇 SO 帖子中的答案
当您尝试调用一个不是函数的对象时,就会发生该操作,如使用
()
。例如,这会产生错误:如果类实例定义了方法
__call__
,也可以被调用。导致此错误的一个常见错误是试图查找一个列表或字典元素,但使用了小括号而不是方括号,例如
(0)
而不是[0]
。当你试图调用不可调用对象时,就会出现异常。可调用对象包括(函数、方法、带有
__call__
的对象)