python 之装饰器
2021-02-04 01:14
标签:ini pre 插入 重新定义 fun 类对象 size hung class 装饰器是一种增加函数或类的功能的方法,可以快速的给不同的函数或类插入相同的功能。 装饰器的表示语法是在函数或类前面加@符号 这里的装饰器的名称就是disp__ff,使用装饰器之后,此处定义的函数就可以只定义自己所需要的功能,二装饰器所定义的功能会自动插入到函数中,这样就可以节省大量具有相同功能的函数或类的代码。 要用装饰器来装饰对象,必须先定义装饰器。装饰器的定义与普通函数的定义在形式上完全一致,只不过装饰器函数的参数必须有函数或类对象,然后在装饰器函数中重新定义一个函数或类,最后返回这个新定义的函数或类。 装饰函数 用装饰器装饰函数,首先要定义装饰器,然后使用定义的装饰器来装饰函数。、 代码实例: 装饰类 装饰器不仅可以装饰函数,还可以装饰类。定义装饰类的装饰器,需要定义内嵌类的函数并返回新类。 代码实例: 上述代码中首先定义了一个能够装饰类的装饰器aa;然后定义了一个内嵌类innerclass,用于代替被修饰的类,并返回新的内嵌类,最后实例化普通类时,得到的就是被修饰后的类 python 之装饰器 标签:ini pre 插入 重新定义 fun 类对象 size hung class 原文地址:https://www.cnblogs.com/zoutingrong/p/12792777.html1 @disp__ff
2 def dd__ff():
3 pass
1 def aa(fun): #定义一个装饰器
2 def ww(*args,**kwargs): #定义装饰器函数
3 print("开始运行:)
4 fun(*args,**kwargs)#调用被装饰的函数
5 print("运行结束:")
6 return ww #返回装饰函数
7 @aa #装饰函数语句
8 def dd(x): #定义普通函数,被装饰器装饰
9 a = []
10 for i in range(x):
11 a.append(i)
12 print(a)
13
14 if __name__ == "__main__":#程序入口
15 dd(6)
1 def aa(myclass):
2 class innerclass:
3 def __init__(self):
4 self.z = 0
5 self.baozhung = myclass()#实例化被装饰类
6
7 def position(self):
8 self.baozhung.position()
9 print("z",self.z)
10 return innerclass#返回新类
11 @aa
12 class coor:
13 def __init__(self,x - 100,y = 100):
14 self.x = x
15 self.y = y
16 def position(self):
17 print("x",self.x)
18 print("y",self.y)
19
20 if __name__ == "__main__":
21 c = coor()
22 c.position()
23 #运行结果
24 x 100
25 y 100
26 z 0