一些装饰器应该只用在最外层。
增强原始功能并添加配置参数的装饰器就是一个示例。
from functools import wraps
def special_case(f):
@wraps(f)
def _(a, b, config_x=False):
if config_x:
print "Special case here"
return
return f(a, b)
我怎样才能避免像这样的装饰器被另一个装饰器装饰?
编辑
让每个尝试应用新装饰器的人都担心应用顺序,真是令人作呕。
那么,有没有可能避免这种情况呢?是否可以在不引入新参数的情况下添加配置选项?