python中__init__ ,__del__ &__new__
__new__
__new__方法是用来创建对象,__new__方法需要有一个返回值,这个返回值表示创建出来的对象的引用
__init__
__init__方法在类的一个对象被建立时 ,马上执行。__init__方法在__new__方法执行后再执行.
__del__
它在对象消逝的时候被调用 ,当类被删除的时候,程序会自动执行__del__当中的代码(与__init__方法相反)
示例:
>>> class c: ... def __new__(cls): ... print('created') ... return object.__new__(cls) ... def __init__(self): ... print('initialized') ... def __del__(self): ... print('deleted') ... >>> c1=c() created initialized >>> c2=c1 >>> c3=c1 >>> del c1 >>> del c2 >>> del c3 deleted
当对象被第一次创建时,会分别运行new&init方法,打印出相关内容。
继续创建一个对象,并将第一个对象赋值给它时,不会再次运行new&init
后续删除各个对象,直到删除到最后一个对象之后,才真正删除类c,调用del方法