python--day12--装饰器精讲,进阶(y由于状态问题,这个学得很差)
1,完美的装饰器:加上装饰器@wrap(func)
wrap就是装饰器的意思
func.__name__拿到的是函数inner的名字,我希望拿到的是func的函数名,所以在函数inner前面加上@wraps(func)


带参数的装饰器
语法糖@timmer_out(flag)等价于timmer = timmer_out(flag)

多个装饰器装饰函数

执行的结果(运行后的现象)

被多个装饰器装饰的函数的执行步骤:

被多个装饰器装饰的函数的执行步骤的原理解析:

原理详解:

三个装饰器装饰函数:
代码与上面的截图一致,@wrapper3和wrapper1一样,只是1变3,其余的都不变。

运行结果:

被装饰器有返回值的三层装饰:
三个装饰器中都得加上 ret = func()和return ret

浙公网安备 33010602011771号