Python內建函數(9)——callable,pythoncallable

來源:互聯網
上載者:User

Python內建函數(9)——callable,pythoncallable

英文文檔:

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
>>>

  2. 可調用對象,在實際調用也可能調用失敗;但是不可調用對象,調用肯定不成功。

  3. 類對象都是可被調用對象,類的執行個體對象是否可調用對象,取決於類是否定義了__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.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.