1
runze 2020-06-23 11:11:15 +08:00
第三个 return 不在 decorated 函数内,跟 if 没关系,返回 decorated 函数
|
2
12tall 2020-06-23 11:12:46 +08:00
对于 python 这种没有花括号的语言,也许你改下排版就能看出来了,第三个 return 返回的是一个函数
![py]( https://s1.ax1x.com/2020/06/23/NtIGVJ.png) |
3
xiaolinjia 2020-06-23 11:12:54 +08:00
第三个 return 是必须的。返回的是装饰器内部的 decorated 函数的引用。换句话说,被装饰器装饰的 func 函数,其引用已经变成了 decorated 函数。即 func = decorator_name(func)。
不信你可以 print(func.__name__)。看看是不是 decorated 。 |
4
xulolololololo 2020-06-23 11:26:36 +08:00
没有缩进看不懂,楼下帮楼主解答一下
|
7
fasionchan 2020-06-24 09:46:26 +08:00
你需要理解装饰器语法糖 @的运行原理,我写过一篇文章,应该可以说清楚: https://python.fasionchan.com/zh_CN/latest/practices/advanced-decorator.html
|