python 装饰器及标准库functools中的wraps
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近在看 flask的视图装饰器 时,忽然想起预(复)习一下python的装饰器. 这里有一篇比较好的讲解装饰器的书写的 Python装饰器学习(九步入门) . 这里不单独记录装饰器的书写格式了,重点是工作流程. 首先常见的 装饰器 格式就是通过@语法糖,简便的写法,让流程有些不太清楚. 装饰器不带参数的情况下: def deco(func): def _deco(): print("before myfunc() called.") func() print(" after myfunc() called.") return _deco @deco def myfunc(): print(" myfunc() called.") myfunc() 运行结果: before myfunc() called. myfunc() called. after myfunc() called. myfunc() called. 这个@语法糖的作用是: def myfunc(): print(" myfunc() called.") myfunc = deco(myfunc) 也就是现在的myfunc不再是一开始定义的那个了,而变成了 def _deco(): print("before myfunc() called.