__init__(self[, ...])方法
1.返回值必须为None
>>> class Rectangle: def __init__(self, x, y): self.x = x self.y = y def getPeri(self): return (self.x + self.y) * 2 def getArea(self): return self.x * self.y >>> rect = Rectangle(3, 4) >>> rect.getPeri() 14 >>> rect.getArea() 12
__new__(cls[, ...])方法
1.一般不需要修改
2.cls是类
3.当你继承一个不可变类型时,又需要修改时,修改这个方法,可以进行预处理
>>> class CapStr(str): def __new__(cls, string): string = string.upper() return str.__new__(cls, string) >>> a = CapStr("AbCdEf") >>> a 'ABCDEF'
__del__(self)
1.只有最后这个方法被销毁时,才被调用
>>> class C: def __init__(self): print("调用了init") def __del__(self): print("调用了del") >>> c1 = C() 调用了init >>> c2 = c1 >>> c3 = c2 >>> del c3 >>> del c2 >>> del c1 调用了del