装饰器进阶
Posted hhsh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器进阶相关的知识,希望对你有一定的参考价值。
from functools import wraps def wrap1(f): @wraps(f) def inner1(): print(‘inner1() before‘) f() print(‘inner1() after‘) return inner1 def wrap2(f): @wraps(f) def inner2(): print(‘inner2() before‘) f() print(‘inner2() after‘) return inner2 @wrap1 # func = wrap1(inner2),把inner2传进来了 @wrap2 # func = wrap2(func) = inner2 先执行这个,因为离被装饰函数func()最近 def func(): ‘‘‘ 这里是func ‘‘‘ print(‘func()‘) func() print(func.__name__) # 返回函数名,如果没有wraps(f)装饰,返回的是inner1而不是func print(func.__doc__) # 返回函数的注释
以上是关于装饰器进阶的主要内容,如果未能解决你的问题,请参考以下文章