__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