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 返回的是一个函数  |
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 |