“TypeError 'xxx' object is not callable”是什么意思?

新手上路,请多包涵

作为 Python 的初级开发人员,我多次看到此错误消息出现在我的控制台中,但我并不完全理解它的含义。

谁能以一般方式告诉我什么样的操作会产生此错误?

原文由 prl900 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 856
2 个回答

当您尝试使用 () 调用一个不可 调用 的对象时,会发生该错误。

可调用对象可以是函数或类(实现 __call__ 方法)。根据 Python 文档

object.call(self[, args…]) :当实例作为函数“调用”时调用

例如:

 x = 1
print x()

x 不是可调用对象,但您正在尝试调用它,就好像它就是它一样。此示例产生错误:

 TypeError: 'int' object is not callable


为了更好地理解什么是 可调用 对象 ,请阅读另一个 SO 帖子中的答案。

原文由 Christian Tapia 发布,翻译遵循 CC BY-SA 3.0 许可协议

其他答案详细说明了错误的原因。一个可能的原因(要检查)可能是你的类有一个同名的变量和方法,然后你调用它们。 Python 将变量作为可调用对象访问 - 使用 ()

例如 A 类定义了 self.aself.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
>>>

原文由 wmorrison365 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题