的Python:什么“类型错误‘xxx’的对象不是可调用”的意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了的Python:什么“类型错误‘xxx’的对象不是可调用”的意思?相关的知识,希望对你有一定的参考价值。

作为一个Python开发者开始我已经看到了这个错误消息多次出现在我的控制台,但我不完全理解这是什么意思。

谁能告诉我,在一般的方式,什么样的行动会产生这个错误?

答案

当您尝试调用,与(),对象未发生callable的错误。

一个可调用对象可以是一个函数或类(实现__call__方法)。据Python Docs

对象.__呼叫__(自[,ARGS ...]):当实例“称为”作为函数调用

例如:

x = 1
print x()

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

TypeError: 'int' object is not callable

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

另一答案

当您尝试调用一个对象,它是不是一个函数,与read this answer in another SO post.发生的操作。例如,这会产生错误:

()

类的实例,也可以是当它们定义了一个方法>>> a = 5 >>> a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable 称为

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

另一答案

其他答案详细的错误原因。一个可能的原因(检查)可能是你的类具有相同名称,您然后调用一个变量和方法。蟒访问变量作为一个可调用 - 与[0]

例如一个类定义()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 >>> 对象)

__call__
另一答案

它只是意味着什么不是一个可调用对象

以上是关于的Python:什么“类型错误‘xxx’的对象不是可调用”的意思?的主要内容,如果未能解决你的问题,请参考以下文章

什么是Python?Python为什么这么抢手?

为什么要学习Python?Python可以做什么事情?

什么是Python?Python可以做什么?

为什么要学习Python?学习Python可以做什么?

Python是个什么鬼?为什么这么多人都在学Python?

Python到底是什么?为什么要学Python?