除了用戶定義的函數,調用運算符(即 ())還可以應用到其他對象上。如果想判斷對象
能否調用,可以使用內置的 callable() 函數。Python 數據模型文檔列出了 7 種可調用對
象。
(1)用戶定義的函數
使用 def 語句或 lambda 表達式創建。
(2)內置函數
使用 C 語言(CPython)實現的函數,如 len 或 time.strftime。
(3)內置方法
使用 C 語言實現的方法,如 dict.get。
(4)方法
在類的定義體中定義的函數。
(5)類
調用類時會運行類的 __new__ 方法創建一個實例,然后運行 __init__ 方法,初始
化實例,最后把實例返回給調用方。因為 Python 沒有 new 運算符,所以調用類相當於調
用函數。(通常,調用類會創建那個類的實例,不過覆蓋 __new__ 方法的話,也可能出
現其他行為。)
(6)類的實例
如果類定義了 __call__ 方法,那么它的實例可以作為函數調用。
(7)使用 yield 關鍵字的函數或方法。
調用生成器函數返回的是生成器對象。