Python內置函數(9)——callable

英文文檔:

callable(object)
Return True if the object argument appears callable, False if not. If this returns true, it is still possible that a call fails, but if it is false, calling object will never succeed. Note that classes are callable (calling a class returns a new instance); instances are callable if their class has a__call__() method.

說明:

  1. 方法用來檢測對象是否可被調用,可被調用指的是對象能否使用()括號的方法調用。
>>> callable(callable)
True
>>> callable(1)
False>>> 1()
Traceback (most recent call last):
    File "<pyshell#5>", line 1, in <module>
1()
TypeError: 'int' object is not callable
  1. 可調用對象,在實際調用也可能調用失??;但是不可調用對象,調用肯定不成功。
  2. 類對象都是可被調用對象,類的實例對象是否可調用對象,取決于類是否定義了 __call__ 方法。
>>> class A: #定義類A 
    pass
>>> callable(A) #類A是可調用對象
True
>>> a = A() #調用類A
>>> callable(a) #實例a不可調用
False
>>> a() #調用實例a失敗
Traceback (most recent call last): 
    File "<pyshell#31>", line 1, in <module> 
      a()
TypeError: 'A' object is not callable
>>> class B: #定義類B 
      def __call__(self): 
         print('instances are callable now.') 
>>> callable(B) #類B是可調用對象
True
>>> b = B() #調用類B
>>> callable(b) #實例b是可調用對象
True
>>> b() #調用實例b成功
instances are callable now.
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Python內置函數詳解——總結篇 ** 引 言** ** 數學運算** abs:求數值的絕對值>>> abs...
    yutiansut閱讀 791評論 0 1
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 轉至元數據結尾創建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 1,788評論 0 9
  • 創建項目目錄 使用vue-cli創建vue項目 以瀏覽器方式執行 安裝nwjs環境依賴 路由模式設置為histor...
    守心向暖閱讀 4,082評論 0 1