Python魔法方法 – 构造和解析
一: init(self[,…])方法
init(self[,…]) 方法相当于其他语言中的构造函数,实例化对象的时候,首先会调用该方法
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)
print(rect.x)
>>> 3
print(rect.getPeri())
>>> 14
init构造函数不能有返回值,否则报错
class A:
def __init__(self):
return "a"
>>> TypeError: __init__() should return None, not 'str'
一个类被创建的时候,其实第1个被调用的方法是new函数,它必须返回1个类,可以是本身,也可以是其他类new(class[…]),主要用于重写不可改变的“类”,例如“str”类
class CapStr(str):
def__new__(cls,string):
string = string.upper()
return str.__new__(cls,string)
a = CapStr("I love you ")
print(a)
>>>I LOVE YOU
del(self)析构函数,垃圾回收,当没有任何变量引用该对象的时候调用,具体用法还不是太明白,需要重新看书学习