__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