Python中的7種可調用對象


Python中有七種可調用對象,可調用對象可使用內置函數callable來檢測

 

一、用戶自定義的函數:

  使用def語句或者lambda表達式創建的函數。

二、內置函數:

  使用C語言實現的函數,如len、sum或者time.strftime

三、內置方法:

  使用C語言實現的方法,如dict.get()

四、類方法:

  在類的定義體中定義的函數

五、類:

  在調用類時會運行類的__new__方法創建一個實例,然后運行__init__方法,初始化實例,最后把實例返回給調用方。Python中沒有new運算符,所以調用類相當於調用函數。

六、類的實例:

  如果類定義了__call__方法,那么它的實例可以作為函數進行調用。並且__call__方法可以進行自定義重寫。

  

import random


class BingoCage(object):
    def __init__(self,items):
        self._items=list(items)
        random.shuffle(self._items)


    def pick(self):
        try:
            return self._items.pop()
        except IndexError:
            raise LookupError('pick from empty BingoCage')

    def __call__(self):
        return self.pick()

七、生成器函數:

  使用yield關鍵字的函數或方法。調用生成器函數返回的是生成器對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM