通常,可調用是可以調用的東西。如果傳遞的對象看起來是可調用的,但可能不是,則此Python中的內置方法檢查並返回True。
用法:
callable(object)
callable()方法僅接受一個參數,即一個對象,並返回兩個值之一:
- 如果對象似乎可調用,則返回True。
- 如果對象不可調用,則返回False。
注意:在少數情況下,callable()返回true,但是對對象的調用失敗。但是,如果情況返回False,則調用對象將永遠不會成功。
案例:可調用對象時
# Python program to illustrate
# callable()
# a test function
def Geek():
return 5
# an object is created of Geek()
let = Geek
print(callable(let))
# a test variable
num = 5 * 5
print(callable(num))
輸出:
True False
說明:
- 在這裏,我們在第一種情況下看到在callable()方法中傳遞對象時,它返回True。之所以如此,是因為let是可調用函數Geek的對象(可能並非在所有情況下都如此)。
- 在第二種情況下,num絕對不是可調用對象,因此結果為False。
內置 callable()方法檢查參數是否為以下兩個參數之一:
- 具有__call__方法的類的實例。
- 具有指示可調用性(例如在函數,方法等中)或具有非null tp_call(c struct)成員的類型
例:
# Python program to illustrate
# callable()
class Geek:
def __call__(self):
print('Hello GeeksforGeeks')
# Suggests that the Geek class is callable
print(callable(Geek))
# This proves that class is callable
GeekObject = Geek()
GeekObject()
輸出:
True Hello GeeksforGeeks
說明:由於第一種情況返回並輸出True,因此表明Geek類可以被調用。之後,我們可以調用__call__方法並且可以訪問它,從而證明該類是可調用的。
案例:無法調用對象時
讓我們看看在這個例子中發生了什麽:
# Python program to illustrate
# callable()
class Geek:
def testFunc(self):
print('Hello GeeksforGeeks')
# Suggests that the Geek class is callable
print(callable(Geek))
GeekObject = Geek()
# The object will be created but
# returns an error on calling
GeekObject()
輸出:
True
說明:callable()方法返回True,表明Geek類是可調用的,但Geek的實例不是callable(),它返回運行時錯誤:
Traceback (most recent call last): File "/home/3979dc83032f2d29befe45b6ee6001a4.py", line 10, in GeekObject() TypeError:'Geek' object is not callable
相關用法
注:本文由純淨天空篩選整理自Chinmoy Lenka大神的英文原創作品 callable() in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。