callable(object)
該方法用來(lái)判斷一個(gè)對(duì)象 object
是否可以被調(diào)用选脊。
如果參數(shù) object 是可被調(diào)用的,函數(shù) callable()
返回 True
脸甘,否則返回 False
恳啥。不過(guò),即使函數(shù) callable()
返回 True
丹诀,在實(shí)際調(diào)用中仍有可能會(huì)出現(xiàn)失敗的情況钝的,但如果返回的是 False
,實(shí)際調(diào)用中肯定會(huì)失敗铆遭。
說(shuō)明:
類(lèi)對(duì)象都是可被調(diào)用對(duì)象(返回類(lèi)的一個(gè)實(shí)例硝桩,如 ClassA()
);類(lèi)的實(shí)例對(duì)象是否可調(diào)用對(duì)象枚荣,則取決于該類(lèi)是否定義了 __call__()
方法亿柑。
示例
>>> class ClassA:
... pass
...
>>> callable(ClassA)
True
>>> a=ClassA()
>>> callable(a)
False
>>> a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'ClassA' object is not callable
>>> class ClassB:
... def __call__(self):
... print('instances are callable')
...
>>> callable(ClassB)
True
>>> b=ClassB()
>>> callable(b)
True
>>> b()
instances are callable