最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中__new__和__init__的區(qū)別與聯(lián)系

 更新時(shí)間:2021年05月05日 13:17:09   投稿:WDC  
這篇文章主要介紹了Python中__new__和__init__的區(qū)別與聯(lián)系,需要的朋友可以參考下

__new__ 和 __init__ 的區(qū)別主要表現(xiàn)在:

__new__ 負(fù)責(zé)對(duì)象的創(chuàng)建而 __init__ 負(fù)責(zé)對(duì)象的初始化。

__new__:創(chuàng)建對(duì)象時(shí)調(diào)用,會(huì)返回當(dāng)前對(duì)象的一個(gè)實(shí)例

__init__:創(chuàng)建完對(duì)象后調(diào)用,對(duì)當(dāng)前對(duì)象的一些實(shí)例初始化,無返回值

1. 在類中,如果__new__和__init__同時(shí)存在,會(huì)優(yōu)先調(diào)用__new__

class ClsTest(object):    def __init__(self):        print("init")    def __new__(cls,*args, **kwargs):        print("new")ClsTest()

輸出:

new

2. 如果__new__返回一個(gè)對(duì)象的實(shí)例,會(huì)隱式調(diào)用__init__

代碼實(shí)例:

class ClsTest(object):    def __init__(self):        print ("init")    def __new__(cls,*args, **kwargs):        print ("new %s"%cls)        return object.__new__(cls, *args, **kwargs)ClsTest()

輸出:

new <class '__main__.ClsTest'>init

3. __new__方法會(huì)返回所構(gòu)造的對(duì)象,__init__則不會(huì)。__init__無返回值。

class ClsTest(object):     def __init__(cls):             cls.x = 2             print ("init")             return clsClsTest()

輸出:

initTraceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: __init__() should return None, not 'ClsTest'

4. 若__new__沒有正確返回當(dāng)前類cls的實(shí)例,那__init__是不會(huì)被調(diào)用的,即使是父類的實(shí)例也不行

class ClsTest1(object):    passclass ClsTest2(ClsTest1):    def __init__(self):        print ("init")    def __new__(cls,*args, **kwargs):        print ("new %s"%cls)        return object.__new__(ClsTest1, *args, **kwargs)b=ClsTest2()print (type(b))

 輸出:

new <class '__main__.ClsTest2'>

<class '__main__.ClsTest1'>

知識(shí)點(diǎn):

1. 繼承自object的新式類才有__new__

2. __new__至少要有一個(gè)參數(shù)cls,代表要實(shí)例化的類,此參數(shù)在實(shí)例化時(shí)由Python解釋器自動(dòng)提供,__new__必須要有返回值,返回實(shí)例化出來的實(shí)例,可以return父類__new__出來的實(shí)例,或者直接是object的__new__出來的實(shí)例

3. __init__有一個(gè)參數(shù)self,就是這個(gè)__new__返回的實(shí)例,__init__在__new__的基礎(chǔ)上可以完成一些其它初始化的動(dòng)作,__init__不需要返回值

4. 如果__new__返回一個(gè)對(duì)象的實(shí)例,會(huì)隱式調(diào)用__init__

更多關(guān)于Python中__new__和__init__的區(qū)別與聯(lián)系的介紹請(qǐng)查看下面的相關(guān)鏈接

相關(guān)文章

  • django authentication 登錄注冊(cè)的實(shí)現(xiàn)示例

    django authentication 登錄注冊(cè)的實(shí)現(xiàn)示例

    本文主要介紹了使用Django內(nèi)置的authentication功能實(shí)現(xiàn)用戶注冊(cè)和登錄功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Python變量命名規(guī)范的總結(jié)

    Python變量命名規(guī)范的總結(jié)

    在Python編程中,變量命名規(guī)范對(duì)于編寫優(yōu)雅和可維護(hù)的代碼至關(guān)重要,本文主要介紹了Python變量命名規(guī)范的總結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Python機(jī)器學(xué)習(xí)pytorch交叉熵?fù)p失函數(shù)的深刻理解

    Python機(jī)器學(xué)習(xí)pytorch交叉熵?fù)p失函數(shù)的深刻理解

    這篇文章主要為大家介紹了Python機(jī)器學(xué)習(xí)中對(duì)交叉熵?fù)p失函數(shù)的深刻理解,文中作出了詳細(xì)易懂的講解,有需要的朋友可以借鑒參考下希望能夠有所幫助
    2021-10-10
  • Python實(shí)現(xiàn)以時(shí)間換空間的緩存替換算法

    Python實(shí)現(xiàn)以時(shí)間換空間的緩存替換算法

    緩存是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器,它先于內(nèi)存與CPU交換數(shù)據(jù),因此速度很快。緩存就是把一些數(shù)據(jù)暫時(shí)存放于某些地方,可能是內(nèi)存,也有可能硬盤。下面給大家介紹Python實(shí)現(xiàn)以時(shí)間換空間的緩存替換算法,需要的朋友參考下
    2016-02-02
  • 在Python開發(fā)環(huán)境中調(diào)用ChatGPT模型詳細(xì)過程

    在Python開發(fā)環(huán)境中調(diào)用ChatGPT模型詳細(xì)過程

    在開發(fā)過程當(dāng)中時(shí)常需要使用 ChatGPT 來完成一些任務(wù),但總是使用網(wǎng)頁(yè)交互模式去 Web 端訪問 ChatGPT 是很麻煩的,這時(shí)候我們可以使用代碼來調(diào)用 ChatGPT 模型,本文將詳細(xì)介紹在 Python 開發(fā)環(huán)境中調(diào)用 ChatGPT 模型過程,,需要的朋友可以參考下
    2023-05-05
  • Python第三方庫(kù)之OpenCV庫(kù)的實(shí)用指南

    Python第三方庫(kù)之OpenCV庫(kù)的實(shí)用指南

    OpenCV(Open Source Computer Vision Library)作為一個(gè)強(qiáng)大的計(jì)算機(jī)視覺庫(kù),提供了豐富的圖像處理和計(jì)算機(jī)視覺功能,本文將帶領(lǐng)讀者使用Python編程語言,通過簡(jiǎn)單的代碼示例,初步掌握OpenCV的圖像處理技術(shù),需要的朋友可以參考下
    2024-09-09
  • python實(shí)現(xiàn)KNN分類算法

    python實(shí)現(xiàn)KNN分類算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)KNN分類算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 利用pandas按日期做分組運(yùn)算的操作

    利用pandas按日期做分組運(yùn)算的操作

    這篇文章主要介紹了利用pandas按日期做分組運(yùn)算的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • django如何設(shè)置csrf_token

    django如何設(shè)置csrf_token

    這篇文章主要介紹了django如何設(shè)置csrf_token問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python實(shí)現(xiàn)感知機(jī)線性分類模型示例代碼

    python實(shí)現(xiàn)感知機(jī)線性分類模型示例代碼

    這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)感知機(jī)線性分類模型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

崇左市| 陆河县| 东乡族自治县| 玉溪市| 介休市| 东丰县| 象山县| 肇东市| 明星| 论坛| 墨竹工卡县| 通州市| 和林格尔县| 灌南县| 柏乡县| 兴仁县| 滁州市| 鹿泉市| 略阳县| 淮滨县| 枣强县| 江川县| 宜兴市| 屏东县| 安多县| 青阳县| 尚义县| 阳山县| 平谷区| 资兴市| 苏尼特右旗| 宁南县| 新绛县| 扶沟县| 故城县| 新郑市| 绥阳县| 吐鲁番市| 巴塘县| 邯郸市| 福鼎市|