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

python __init__與 __new__的區(qū)別

 更新時間:2023年02月24日 15:40:59   作者:做測試的喵醬  
本文主要介紹了python __init__與 __new__的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、構(gòu)造函數(shù) __init__ 與__new__

__new__   作用: 創(chuàng)建對象,并分配內(nèi)存

__init__ 作用: 初始化對象的值

注意:

1、與java相比,java只有一個構(gòu)造器。而python  __new__  方法與 __init__ 方法 組合,才能稱為一個對應(yīng)類似于java中的構(gòu)造器 

2、先執(zhí)行__new__ ,創(chuàng)建對象,并分配內(nèi)存.

再執(zhí)行 __init__,初始化對象的值。

3、任何類都繼承于object 類。

我們一般不重寫__new__ 方法。 我們不重寫,就默認(rèn)調(diào)用父類 的 __new__ 方法。

4、__new__ 方法 ,一定要return 一個對象。 如果自己重寫__new__ 方法,但是沒有return出一個對象。連對象都沒創(chuàng)建成功,后面是不會進(jìn)行初始化對象的。

例子1:

class Person(object):
    def __init__(self,name,id,sex):
        self.name = name
        self.id = id
        self.sex = sex
        print("初始化對象的值")
 
    def __new__(cls, *args, **kwargs):
        print("開始創(chuàng)建對象,并分配內(nèi)存")
 
if __name__ == '__main__':
    p = Person("張三",12,"男")

運(yùn)行結(jié)果,只執(zhí)行了__new__ 方法,并沒有執(zhí)行 __init__方法。

為啥呢? 因?yàn)閚ew函數(shù),沒有返回一個 對象。

正確的用法

class Person(object):
    def __init__(self,name,id,sex):
        self.name = name
        self.id = id
        self.sex = sex
        print("初始化對象的值")
 
    def __new__(cls, *args, **kwargs):
        print("開始創(chuàng)建對象,并分配內(nèi)存")
        self = super().__new__(cls)
        return self
 
if __name__ == '__main__':
    p = Person("張三",12,"男")

打印結(jié)果:

開始創(chuàng)建對象,并分配內(nèi)存
初始化對象的值

到此這篇關(guān)于python __init__與 __new__的區(qū)別的文章就介紹到這了,更多相關(guān)python __init__與 __new__內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 操作 MySQL數(shù)據(jù)庫

    Python 操作 MySQL數(shù)據(jù)庫

    這篇文章主要介紹了Python 如何操作 MySQL,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • pandas數(shù)值排序的實(shí)現(xiàn)實(shí)例

    pandas數(shù)值排序的實(shí)現(xiàn)實(shí)例

    篩選和排序是Excel中使用頻率最多的功能,本文主要介紹了pandas數(shù)值排序的實(shí)現(xiàn)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),,感興趣的可以了解一下
    2021-07-07
  • Python自動登錄126郵箱的方法

    Python自動登錄126郵箱的方法

    這篇文章主要介紹了Python自動登錄126郵箱的方法,涉及Python針對郵箱操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python反轉(zhuǎn)單鏈表算法題

    python反轉(zhuǎn)單鏈表算法題

    這篇文章主要為大家詳細(xì)介紹了python反轉(zhuǎn)單鏈表算法題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Django框架多表查詢實(shí)例分析

    Django框架多表查詢實(shí)例分析

    這篇文章主要介紹了Django框架多表查詢,結(jié)合實(shí)例形式分析了Django框架實(shí)現(xiàn)多表查詢的外鍵、關(guān)聯(lián)、前向查詢、反向查詢等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • python 利用pyttsx3文字轉(zhuǎn)語音過程詳解

    python 利用pyttsx3文字轉(zhuǎn)語音過程詳解

    這篇文章主要介紹了python 利用pyttsx3文字轉(zhuǎn)語音過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Django model select的多種用法詳解

    Django model select的多種用法詳解

    最近看到 大神 運(yùn)維咖啡吧的 一篇文章,這里只做個備份,講的是各種 django model 查詢,發(fā)現(xiàn)不錯,十分感謝該大神的無私奉獻(xiàn)
    2019-07-07
  • python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù)示例

    python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù)示例

    這篇文章主要介紹了python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù),結(jié)合實(shí)例形式Fenix了python3 BeautifulSoup模塊進(jìn)行數(shù)據(jù)的抓取相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Django中URL的參數(shù)傳遞的實(shí)現(xiàn)

    Django中URL的參數(shù)傳遞的實(shí)現(xiàn)

    這篇文章主要介紹了Django中URL的參數(shù)傳遞的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識別系統(tǒng)的方法

    Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識別系統(tǒng)的方法

    這篇文章主要介紹了Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識別系統(tǒng)的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論