2014-01-24 40 views

回答

15

當您嘗試調用,與()出現該錯誤,對象不是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
2

當您嘗試調用不可調用的對象時引發異常。可調用的對象是(函數,方法,對象與__call__

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

當試圖調用一個對象,其不是一個函數,與()發生的操作。例如,這會產生錯誤:

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

類的實例也可以,如果他們定義一個方法叫做__call__

導致此錯誤是試圖查找列表或字典元素

一個常見的錯誤,但使用圓括號而不是方括號,即(0)代替[0]

相關問題