def wrapper1(func1):
def inner1():
print('w1 ,before')
func1()
print('w1 after')
return inner1
def wrapper2(func2):
def inner2():
print('w2 ,before')
func2()
print('w2 after')
return inner2
@wrapper2 # f =wrapper2(f) , func2=inner1函数 当执行完func2时, 就带表要去执行inner1, func1() 执行的是真正的原函数.
@wrapper1 # f =wrapper1(f) , func1=f原函数 f()=inner1
def f():
print('in f')
f() # f在这里 被我定义 变量,看下面理解,就ok了.
# 推荐一种方式 ,debug模式.
# 多个装饰器装饰一个函数相当于装饰器函数的嵌套 (相当于把另一个装饰器函数的inner方法作为参数传递给了另一个装饰器函数的形参func接收.) so不明白就看下面吧
相关文章
- python在一个函数中调用另一函数中的变量
- 第11.22节 Python 中re模块的字符串分割器:split函数
- Python函数加工厂-装饰器
- Python函数的装饰器
- browser-use 库中异步函数执行时间装饰器-代码
- 编写程序python输入任意大的自然数、输出各位数字之和_计算一个自然数的各位数字之和,在主函数中输入自然数,并输出结果。求大神解答编写程序,计算一个自然数的各位...
- Python的私有变量与装饰器@property的用法
- Python中的"缝合器"zip函数:将多个可迭代对象组合成一个迭代器
- 6-1 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)分数 5
- python装饰器的详细解析