标签:hat 属性 font 类对象 pytho 传递 __new__ roc init
__init__与__new__区别:
__init__在python,其实是,在实例化之后执行的,用来初始化一些属性,相当于构造函数,但是又不一样
细心一些,通过参数会有所发现,其实__init__(self) self隐式的将,实例传过来。
__new__在python中其实是,在实例化之前执行的,这个通过参数一样可以看出
__new__(cls),cls是隐式的传递的类对象,并不是实例。因为__new__的任务就是,创建类实例并返回实例。
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
Python基础(十) __init__与__new__区别
标签:hat 属性 font 类对象 pytho 传递 __new__ roc init
原文地址:http://www.cnblogs.com/yhleng/p/7779267.html