首页 > 代码库 > 装饰器,装饰器多参数的使用(*arg, **kwargs),装饰器的调用顺序
装饰器,装饰器多参数的使用(*arg, **kwargs),装饰器的调用顺序
一、#1.执行outer函数,并且将其下面的函数名,当作参数
#2、将outer的返回值重新赋值给f1 = outer的返回值
#3.新f1 = inner
#4.func = 原f1
1 #!/usr/bin/env python 2 def outer(func) : 3 def inner() : 4 print("hello") 5 print("hello") 6 print("hello") 7 r = func() 8 print("end") 9 print("end") 10 print("end") 11 return r 12 return inner 13 @outer 14 def f1() : 15 print("F1") 16 #1.执行outer函数,并且将其下面的函数名,当作参数 17 #2、将outer的返回值重新赋值给f1 = outer的返回值 18 #3.新f1 = inner 19 f1()
二、装饰器多参数的使用(*arg, **kwargs)
1 #!/usr/bin/env python 2 def oute(func) : 3 """ 4 5 :param func: 6 :return: 7 """ 8 def inner(*arg, **kwargs) : 9 print("abvc") 10 r = func(*arg, **kwargs) 11 print("456") 12 return r 13 return inner 14 @oute 15 def outer(func) : 16 def inner(*arg, **kwargs) : 17 print("123") 18 r = func(*arg, **kwargs) 19 print("789") 20 return r 21 return inner 22 # @oute 23 @outer 24 25 def f1(a1, a2) : 26 print("321") 27 def f2(a1, a2) : 28 print("dfas") 29 f1(1,2)
结果为:
abvc
456
123
321
789
1 #!/usr/bin/env python 2 def oute(func) : 3 """ 4 5 :param func: 6 :return: 7 """ 8 def inner(*arg, **kwargs) : 9 print("abvc") 10 r = func(*arg, **kwargs) 11 print("456") 12 return r 13 return inner 14 # @oute 15 def outer(func) : 16 def inner(*arg, **kwargs) : 17 print("123") 18 r = func(*arg, **kwargs) 19 print("789") 20 return r 21 return inner 22 @oute 23 @outer 24 25 def f1(a1, a2) : 26 print("321") 27 def f2(a1, a2) : 28 print("dfas") 29 f1(1,2)
结果为:
abvc
123
321
789
456
装饰器,装饰器多参数的使用(*arg, **kwargs),装饰器的调用顺序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。