欧美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,"男")

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

為啥呢? 因為new函數(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中使用__slots__方法的詳細(xì)教程

    在Python中使用__slots__方法的詳細(xì)教程

    這篇文章主要介紹了在Python中使用__slots__方法的詳細(xì)教程,__slots__方法是Python的一個重要內(nèi)置類方法,代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • Django之提交表單與前后端交互的方法

    Django之提交表單與前后端交互的方法

    今天小編就為大家分享一篇Django之提交表單與前后端交互的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • pytorch之torch_scatter.scatter_max()用法

    pytorch之torch_scatter.scatter_max()用法

    這篇文章主要介紹了pytorch之torch_scatter.scatter_max()用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • numpy數(shù)據(jù)類型dtype轉(zhuǎn)換實現(xiàn)

    numpy數(shù)據(jù)類型dtype轉(zhuǎn)換實現(xiàn)

    這篇文章主要介紹了numpy數(shù)據(jù)類型dtype轉(zhuǎn)換實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 使用Python和FastAPI實現(xiàn)MinIO斷點續(xù)傳功能

    使用Python和FastAPI實現(xiàn)MinIO斷點續(xù)傳功能

    在分布式存儲和大數(shù)據(jù)應(yīng)用中,斷點續(xù)傳是一個重要的功能,它允許大文件上傳在中斷后可以從中斷點恢復(fù),而不是重新上傳整個文件,本文將介紹如何使用Python封裝MinIO的斷點續(xù)傳方法,需要的朋友可以參考下
    2024-12-12
  • python使用urllib模塊和pyquery實現(xiàn)阿里巴巴排名查詢

    python使用urllib模塊和pyquery實現(xiàn)阿里巴巴排名查詢

    這篇文章主要介紹了python庫urllib及pyquery基本東西的應(yīng)用,實現(xiàn)阿里巴巴關(guān)鍵詞排名的查詢,其中涉及到urllib代理的設(shè)置,pyquery對html文檔的解析
    2014-01-01
  • python使用turtle繪制分形樹

    python使用turtle繪制分形樹

    這篇文章主要為大家詳細(xì)介紹了python使用turtle繪制分形樹的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 安裝PyInstaller失敗問題解決

    安裝PyInstaller失敗問題解決

    這篇文章主要介紹了安裝PyInstaller失敗問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python+Opencv實現(xiàn)計算閉合區(qū)域面積

    Python+Opencv實現(xiàn)計算閉合區(qū)域面積

    這篇文章主要介紹了利用Python?Opencv計算閉合區(qū)域的面積的原理以及實現(xiàn)代碼,文中的講解詳細(xì)易懂,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2022-03-03
  • python讀取多類型文件夾中的文檔內(nèi)容

    python讀取多類型文件夾中的文檔內(nèi)容

    無論我們使用哪種編程語言,處理文件對于每個程序員都是必不可少的,本文主要介紹了python讀取多類型文件夾中的文檔內(nèi)容,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03

最新評論