1.
>>> 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
>>> rec=Rectangle(3,4)
>>> rec.getPeri()
14
>>> rec.getArea()
12
>>>
2.在类中的自定义__init__方法,默认返回值为None
>>> class A:
def __init__(self):
return 'hahhah'
>>> a=A()
Traceback (most recent call last):
File "", line 1, in
a=A()
TypeError: __init__() should return None, not 'str'
>>>
3.__new__(cls[,...])方法: 需要实例化一个对象作为返回值,通常返回cls的实例对象
a.cls[,...]是一个类,如果有参数,会传到__init__方法中。
>>> class CapStr(str):#继承str
def __new__(cls,string):
string=string.upper() #变成大写字母
return str.__new__(cls,string)
>>> a=CapStr('i love you')
>>> a
'I LOVE YOU'
>>>
4.__del__(self):析构器,垃圾回收机制自动调用此方法
a.当对象将要被销毁的时候,方法被自动调用
>>> class A:
def __init__(self):
print('我是__init__方法,我被调用了')
def __del__(self):
print('我是__del__方法,我被调用了')
>>> a=A()
我是__init__方法,我被调用了
>>> a1=a #变量的赋值
>>> a2=a1
>>> del a2
>>> del a1
>>> del a
我是__del__方法,我被调用了
>>>
所有引用被del后才会调用此方法