有没有办法在应用于同一函数的两个 python 装饰器之间传递变量?目标是让其中一个装饰器知道另一个也被应用。我需要以下示例中的 decobar_present() 之类的东西:
def decobar(f):
def wrap():
return f() + "bar"
return wrap
def decofu(f):
def wrap():
print decobar_present() # Tells me whether decobar was also applied
return f() + "fu"
return wrap
@decofu
@decobar
def important_task():
return "abc"
更一般地说,我希望能够根据是否还应用了 decobar 来修改 decofu 的行为。