mini-web框架-装饰器-总结1(5.3.1)
@
1.说明
原则:开放封闭
可以扩展,但是不可以修改。也就是说软件对扩展开放,对修改关闭。
运用技术:闭包
一共两种方法,一个使用闭包,一个使用类
使用多个装饰器是从上到下
2.代码
def test2(func):
def return_(num,*args,**kwargs):
print("test2")
print("附加%d" % num)
return func(num,*args,**kwargs)
return return_
def test1(func):
def return_(num,*args,**kwargs):
print("test1")
print("附加%d" % num)
return func(num,*args,**kwargs)
return return_
class Test3(object):
def __init__(self,func):
self.func = func
pass
def __call__(self, name,*args, **kwargs):
print("Test3")
self.func(name,*args, **kwargs)
@Test3
@test2
@test1
def orin(num,*args,**kwargs):
print("原来%d" % num)
for i in args:
print(i)
for i in kwargs:
print(i,kwargs[i])
return "最后我返回"
a = orin(200,100,500,nums=1000,w=2022)
print(a)
关于作者
个人博客网站
个人GitHub地址
个人公众号: