的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’的对象不是可调用”的意思?的主要内容,如果未能解决你的问题,请参考以下文章