除了用戶自定義的函數,調用操作符()也可以被用在其它對象上。Python中有7種形式的可調用對象:
用戶自定義函數
由def語句或者lambda表達式創建。
內置函數
由C(CPython)實現,如len,time.strftime。
內置方法
由C實現的方法,如dict.get。
方法(Method)
定義在類中的函數。
類
一個類通過__new__方法來創建一個實例,並通過__init__方法初始化之,並最終把實例返回給調用者。由於Python中沒有new操作符,所以通過對一個類進行調用來創建這個類的實例。當然,你也可以重載__new__方法來做一些別的事情。
類實例
如果一個類的中定義了__call__方法,那麼這個類的實例就可以像函數一樣被調用。
Generator函數
使用了yield關鍵字的函數或者方法,在被調用時,返回一個generator對象。
為了判斷一個對象是否是可調用的,可以使用callable()內置函數: