【发布时间】:2019-08-03 02:10:26
【问题描述】:
我正在查看带有装饰器的烧瓶后端中的函数,并考虑将其导入另一个脚本并以不同的方式装饰它。有谁知道当你导入它时会发生什么,装饰器是否与它一起使用?
我查看了this,但它正在讨论更多在同一个脚本中发生的事情。
【问题讨论】:
-
装饰器没有,但装饰器的result有。装饰只是
def funcname(...): ...; funcname = decorator(funcname)的语法快捷方式。除非装饰器通过新函数显式公开它,否则您无权访问原始的、未装饰的函数。 -
@chepner 除非装饰器通过新函数显式公开它 是什么意思?
-
@cardamom:函数可以有属性,装饰器可以返回一个带有附加属性的新函数对象,其中一个可以是对原始的引用。
-
@cardamom:
@functools.wrapsdecorator utility 正是这样做的,它将wrapper.__wrapped__设置为原始函数。
标签: python python-3.x decorator