Callable object in Python

參考以下程式碼:
class Test(object):

    def __init__(self):
        print 'init'

    def __call__(self):
        print 'call'
這時,我們來建立一個Test類別的實體
test = Test()  # 印出 init
Ok, 這很簡單理解,因為我們初始化了Test類別。那何時會用到__call__呢?那就是把test當function呼叫看看。
test()  # 印出 call
有趣吧,這在其他程式語言中很少見,但是如果沒有實作__call__的話,執行該物件會產生TypeError exception,會告訴你該物件不是callable。

留言

熱門文章