作为Python的初级开发人员,我已经多次出现在我的控制台中看到此错误消息,但我不完全明白这意味着什么.
有人能用一般的方式告诉我,这种错误会产生什么样的行为?
Chr*_*ian 44
当您尝试使用()不可调用的对象调用时,会发生该错误.
可调用对象可以是函数或类(实现__call__方法).根据Python Docs:
object .__ call __(self [,args ...]):当实例被"调用"为函数时调用
例如:
x = 1
print x()
x不是一个可调用的对象,但你试图像它一样调用它.此示例产生错误:
TypeError: 'int' object is not callable
为了更好地理解什么是可调用对象,请在另一篇SO帖子中阅读此答案.
wmo*_*365 11
其他答案详细说明了错误的原因。一个可能的原因(检查)可能是你的类有一个同名的变量和方法,然后你调用它们。Python 将变量作为可调用对象访问 - 使用().
例如,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
>>>
当您尝试调用不是函数的对象时会发生该操作,例如(). 例如,这将产生错误:
>>> a = 5
>>> a()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
如果类实例定义了方法,也可以调用它们 __call__
一个常见的错误导致此错误是试图查找列表或字典元素,但使用圆括号而不是方括号,即(0)代替[0]
| 归档时间: | 
 | 
| 查看次数: | 107630 次 | 
| 最近记录: |