python3資料模型-模擬可呼叫物件object.__call__(self[, args...])

weixin_33782386發表於2018-08-10

模擬可呼叫物件

object.__call__(self[, args...])
當例項作為函式“呼叫”時呼叫;如果定義了該方法,則x(arg1, arg2, ...)x.__call__(arg1, arg2, ...)的簡寫。

  • 關於 __call__ 方法,不得不先提到一個概念,就是可呼叫物件(callable),我們平時自定義的函式、內建函式和類都屬於可呼叫物件,但凡是可以把一對括號()應用到某個物件身上都可稱之為可呼叫物件,判斷物件是否為可呼叫物件可以用函式 callable

  • 如果在類中實現了 call 方法,那麼例項物件也將成為一個可呼叫物件

class A:
    def __call__(self):
        print '__call__'
  • 輸出結果為:
>>> a=A()
>>> a()
__call__

相關文章