__init__(self[,...])
__init__和__new__组成python的构造器,但__init__更多的是负责初始化操作,相当于一个项目中的配置文件,__new__才是真正的构造函数,创建并返回一个实例对象,如果__new__只调用了一次,就会得到一个对象
__new__(cls[,...])
当继承一个不可修改的类,但又想去修改的时候,需要重写__new__方法
>>> class Capstr(str): # str是一个不可修改的类 def __new__ (cls,string): string = string.upper() return str. __new__ (cls,string) >>>a = Capstr( ' i am Demi ' ) >>> a ' I AM DEMI '
__del__(self)
是对象的析造器,并非所有del操作都会调用__del__(),只有对象生成后,所有对它的引用都被del之后,才会启动垃圾回收机制,才会调用__del__方法
>>> class C: def __init__ (self): print ( ' __init__方法正在被调用 ' ) def __del__ (self): print ( ' __del__方法正在被调用 ' ) >>>c1= C() __init__方法正在被调用 >>>c2= c1 >>> del c2 >>> del c1 __del__方法正在被调用