在试图理解python中的条件装饰器时,我遇到了this example。这个问题的公认答案解释了如何定义一个条件装饰器,而不是如何使用它。在
示例代码如下:class conditional_decorator(object):
def __init__(self, dec, condition):
self.decorator = dec
self.condition = condition
def __call__(self, func):
if not self.condition:
# Return the function unchanged, not decorated.
return func
return self.decorator(func)
@conditional_decorator(timeit, doing_performance_analysis)
def foo():
time.sleep(2)
但如何使用它呢?我像这样尝试了foo的以下调用:
^{pr2}$
但我有以下错误:Traceback (most recent call last):
File "tester.py", line 18, in
@conditional_decorator(timeit, doing_performance_analysis)
NameError: name 'doing_performance_analysis' is not defined
那么它是如何正确工作的呢?在