Python 什么是;类型错误';xxx和x27;对象不可调用";方法

Python 什么是;类型错误';xxx和x27;对象不可调用";方法,python,Python,作为Python的新手,我在控制台中多次看到这个错误消息,但我不完全理解它的含义 有谁能告诉我,在一般情况下,什么样的操作会产生此错误?当您尝试调用not callable对象时,会引发异常。可调用对象是(函数、方法、对象) >>f=1 >>>可调用(f) 假的 >>>f() 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:“int”对象不可调用 当您试图调用一个非函数的对象时,就会发生该操作,如()。例如,这将产生以下错误: >>> a = 5 &g

作为Python的新手,我在控制台中多次看到这个错误消息,但我不完全理解它的含义


有谁能告诉我,在一般情况下,什么样的操作会产生此错误?

当您尝试调用not callable对象时,会引发异常。可调用对象是(函数、方法、对象)

>>f=1
>>>可调用(f)
假的
>>>f()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“int”对象不可调用

当您试图调用一个非函数的对象时,就会发生该操作,如
()
。例如,这将产生以下错误:

>>> a = 5
>>> a()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
TypeError: 'int' object is not callable
>a=5
>>>()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“int”对象不可调用
如果类实例定义了一个方法
\uuuuu call\uuuuu


导致此错误的一个常见错误是试图查找列表或字典元素,但使用括号而不是方括号,即
(0)
而不是
[0]

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

可调用对象可以是一个函数或一个类(实现
\uuu调用\uuu
方法)。根据:

对象。调用(self[,args…]):当实例作为函数“调用”时调用

例如:

x = 1
print x()
x
不是一个可调用的对象,但您正在尝试调用它,就好像它是它一样。此示例产生以下错误:

>>> a = 5
>>> a()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
TypeError: 'int' object is not callable


为了更好地理解什么是可调用对象

,其他答案详细说明了错误的原因。一个可能的原因(检查)可能是您的类有一个同名的变量和方法,然后您调用该变量和方法。Python使用
()
以可调用的方式访问变量

e、 g.A类定义了
self.A
self.A()

>>A类:
...     定义初始值(self,val):
...         self.a=val
...     def a(自我):
...         回归自我
...
>>>my_a=a(12)
>>>val=my_a.a()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“int”对象不可调用
>>>

我是因为一个愚蠢的错误才看到这个错误消息的。这是Python的一个经典例子,它给了你足够的空间让你出丑。注意:

class DOH(object):
def __init__(self, property=None):
    self.property=property

def property():
    return property

x = DOH(1)
print(x.property())
结果

$ python3 t.py
Traceback (most recent call last):
  File "t.py", line 9, in <module>
    print(x.property())
TypeError: 'int' object is not callable
$python3 t.py
回溯(最近一次呼叫最后一次):
文件“t.py”,第9行,在
打印(x.property())
TypeError:“int”对象不可调用

当然,这里的问题是函数被属性覆盖。

如果处理的对象支持索引,请使用
x[y]
而不是
x(y)