作爲Python中的首選開發人員,我已經多次看到此錯誤消息出現在我的控制檯中,但我不完全明白它的含義。Python:什麼「TypeError'xxx'對象不可調用」是指?
任何人都可以用一般的方式告訴我,什麼樣的動作會產生這個錯誤?
作爲Python中的首選開發人員,我已經多次看到此錯誤消息出現在我的控制檯中,但我不完全明白它的含義。Python:什麼「TypeError'xxx'對象不可調用」是指?
任何人都可以用一般的方式告訴我,什麼樣的動作會產生這個錯誤?
當您嘗試調用,與()
出現該錯誤,對象不是callable。
可調用對象可以是函數或類(實現方法__call__
)。據Python Docs:
object.__call__(self[, args...]): Called when the instance is 「called」 as a function
例如:
x = 1
print x()
x
不是一個可調用對象,但你嘗試調用它,就好像它是它。這個例子產生錯誤:
TypeError: 'int' object is not callable
對於什麼是調用對象read this answer in another SO post.
更好understaing當您嘗試調用不可調用的對象時引發異常。可調用的對象是(函數,方法,對象與__call__
)
>>> f = 1
>>> callable(f)
False
>>> f()
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]