首页 > 代码库 > 【Pyton】【小甲鱼】魔法方法

【Pyton】【小甲鱼】魔法方法

1.__init__

 1 >>> class Rectangle:
 2     def __init__(self,x,y):
 3         self.x=x
 4         self.y=y
 5     def getPeri(self):
 6         return(self.x+self.y)*2
 7     def getArea(self):
 8         return self.x*self.y
 9 
10     
11 >>> rect=Rectangle(3,4)
12 >>> rect.getPeri()
13 14
14 >>> rect.getArea()
15 12
16 >>> class A:
17     def __init__(self):
18         return "A fo A-Cup"
19 
20     
21 >>> a=A() #由于定义了A有返回值了,所以会报错。init无返回值
22 Traceback (most recent call last):
23   File "<pyshell#37>", line 1, in <module>
24     a=A()
25 TypeError: __init__() should return None, not str

2.__new__(cls[,])

1 >>> class CapStr(str):
2     def __new__(cls,string): #传入str化身为string
3         string=string.upper() #string转换为为大写字符串
4         return str.__new__(cls,string)#返回的时候必须重写new方法,否则则会自动调用capstr函数
5 >>> a=CapStr("I love fishC.com!")
6 >>> a
7 I LOVE FISHC.COM!

3.__del__(self):当对象将要被销毁的时候,此方法就会被调用

 1 >>> class C:
 2     def __init__(self):
 3         print("我是__init__方法,我被调用了...")
 4     def __del__(self):
 5         print("我是__del__方法,我被调用了...")
 6     
 7 >>> c1=C()
 8 我是__init__方法,我被调用了...
 9 >>> c2=c1
10 >>> c3=c2
11 >>> del c3
12 >>> del c2
13 >>> del c1 #只有删除了所有引用方法C的对象后,才启动垃圾回收机制,垃圾回收机制在销毁对象的时候,会自动调用del方法,对其中的内容进行垃圾回收,才会打印出来回收的内容。
14 我是__del__方法,我被调用了...

 

【Pyton】【小甲鱼】魔法方法