Python基礎(十) __init__與__new__區別

__init__與__new__區別:python

__init__在python,實際上是,在實例化以後執行的,用來初始化一些屬性,至關於構造函數,可是又不同函數

細心一些,經過參數會有所發現,其實__init__(self)  self隱式的將,實例傳過來。學習

 

__new__在python中實際上是,在實例化以前執行的,這個經過參數同樣能夠看出spa

__new__(cls),cls是隱式的傳遞的類對象,並非實例。由於__new__的任務就是,建立類實例並返回實例。code

class temp(object):

    def __init__(self,txt):
        self.txt = txt
        print '__init__'


    def __new__(cls,txt):
        print '__new__'
        print txt
        return super(temp,cls).__new__(cls)

temp('what?')

結果:對象

C:\Python27\python.exe D:/weixin/temp/abc.py
__new__
what?
__init__

Process finished with exit code 0

 

 

Linux and python學習交流1,2羣已滿.blog

Linux and python學習交流3羣新開,歡迎加入,一塊兒學習.qq 3羣:563227894it

不前進,不倒退,中止的狀態是沒有的.class

一塊兒進步,與君共勉,object

相關文章
相關標籤/搜索