欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中的__init__ 、__new__、__call__小結(jié)

 更新時間:2014年04月25日 11:59:07   作者:  
這篇文章主要介紹了python中的__init__ 、__new__、__call__小結(jié),需要的朋友可以參考下

1.__new__(cls, *args, **kwargs)  創(chuàng)建對象時調(diào)用,返回當(dāng)前對象的一個實(shí)例;注意:這里的第一個參數(shù)是cls即class本身
2.__init__(self, *args, **kwargs) 創(chuàng)建完對象后調(diào)用,對當(dāng)前對象的實(shí)例的一些初始化,無返回值,即在調(diào)用__new__之后,根據(jù)返回的實(shí)例初始化;注意,這里的第一個參數(shù)是self即對象本身【注意和new的區(qū)別】
3.__call__(self,  *args, **kwargs) 如果類實(shí)現(xiàn)了這個方法,相當(dāng)于把這個類型的對象當(dāng)作函數(shù)來使用,相當(dāng)于 重載了括號運(yùn)算符
 

看具體的例子:

復(fù)制代碼 代碼如下:

class O(object):

    def __init__(self, *args, **kwargs):
        print "init"
        super(O, self).__init__(*args, **kwargs)

    def __new__(cls, *args, **kwargs):
        print "new", cls
        return super(O, cls).__new__(cls, *args, **kwargs)

    def __call__(self,  *args, **kwargs):
        print "call"
      

    oo = O()
    print "________"
    oo() 


打印出來的是:
復(fù)制代碼 代碼如下:

new
init
________
call

比如:Python Singleton(單例模式)實(shí)現(xiàn),那我們是不是只是重載一些__new__方法就可以了
復(fù)制代碼 代碼如下:

class Singleton1(object):
    """ 重載new方法"""
    def __new__(cls, *args, **kwargs):
        if not "_instance" in vars(cls):
            cls._instance = super(Singleton1, cls).__new__(cls, *args, **kwargs)
        return cls._instance

可不可以重載__init__方法呢?明顯不可以,因?yàn)開_init__之前調(diào)用了__new__方法,這時候已經(jīng)生成了一個對象了,沒辦法實(shí)現(xiàn)單例模式

相關(guān)文章

  • pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié)

    pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié)

    本文主要介紹了pytorch中部分矩陣乘法和數(shù)組乘法的小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • PyQt5每天必學(xué)之彈出消息框

    PyQt5每天必學(xué)之彈出消息框

    這篇文章主要為大家詳細(xì)介紹了PyQt5每天必學(xué)之彈出消息框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python實(shí)現(xiàn)樸素貝葉斯分類器

    python實(shí)現(xiàn)樸素貝葉斯分類器

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)樸素貝葉斯分類器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python讀取和存儲yaml文件的方法

    Python讀取和存儲yaml文件的方法

    本文主要介紹了Python讀取和存儲yaml文件的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • django-filter和普通查詢的例子

    django-filter和普通查詢的例子

    今天小編就為大家分享一篇django-filter和普通查詢的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • flask 使用 flask_apscheduler 做定時循環(huán)任務(wù)的實(shí)現(xiàn)

    flask 使用 flask_apscheduler 做定時循環(huán)任務(wù)的實(shí)現(xiàn)

    這篇文章主要介紹了flask 使用 flask_apscheduler 做定時循環(huán)任務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Opencv實(shí)現(xiàn)二維直方圖的計算及繪制

    Opencv實(shí)現(xiàn)二維直方圖的計算及繪制

    這篇博客將介紹如何使用Opencv進(jìn)行二維直方圖的計算及繪制,維直方圖可以讓我們對不同的像素密度有更好的了解,感興趣的可以了解一下
    2021-07-07
  • Python編程中對super函數(shù)的正確理解和用法解析

    Python編程中對super函數(shù)的正確理解和用法解析

    可能有人會想到,Python中既然可以直接通過父類名調(diào)用父類方法為什么還會存在super函數(shù)?其實(shí),很多人對Python中的super函數(shù)的認(rèn)識存在誤區(qū),本文我們就帶來在Python編程中對super函數(shù)的正確理解和用法解析
    2016-07-07
  • Python實(shí)現(xiàn)平行坐標(biāo)圖的兩種方法小結(jié)

    Python實(shí)現(xiàn)平行坐標(biāo)圖的兩種方法小結(jié)

    今天小編就為大家分享一篇Python實(shí)現(xiàn)平行坐標(biāo)圖的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 淺談cv2.imread()和keras.preprocessing中的image.load_img()區(qū)別

    淺談cv2.imread()和keras.preprocessing中的image.load_img()區(qū)別

    這篇文章主要介紹了淺談cv2.imread()和keras.preprocessing中的image.load_img()區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評論