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