上一篇文章為:→3.8.2工廠模式
__new__
方法
__new__和__init__
的作用
class A(object):
def __init__(self):
print("這是 init 方法")
def __new__(cls):
print("這是 new 方法")
return object.__new__(cls)
A()
總結(jié)
__new__
至少要有一個(gè)參數(shù)cls,代表要實(shí)例化的類见咒,此參數(shù)在實(shí)例化時(shí)由Python解釋器自動(dòng)提供__new__
必須要有返回值偿衰,返回實(shí)例化出來的實(shí)例,這點(diǎn)在自己實(shí)現(xiàn)__new__
時(shí)要特別注意论颅,可以return父類__new__
出來的實(shí)例哎垦,或者直接是object的__new__
出來的實(shí)例__init__
有一個(gè)參數(shù)self囱嫩,就是這個(gè)__new__
返回的實(shí)例恃疯,__init__
在__new__
的基礎(chǔ)上可以完成一些其它初始化的動(dòng)作,__init__
不需要返回值我們可以將類比作制造商墨闲,
__new__
方法就是前期的原材料購(gòu)買環(huán)節(jié)今妄,__init__
方法就是在有原材料的基礎(chǔ)上,加工鸳碧,初始化商品環(huán)節(jié)
注意點(diǎn)
day08_python面向?qū)ο?3異常模塊-01.png