【发布时间】:2017-07-21 11:49:48
【问题描述】:
我希望创建一个全局切换变量来根据通过命令行传递的参数来打开和关闭我的装饰。
在下面的情况下,我不需要在不需要时注释掉@time_md5_comparison,而是根据传递的参数进行全局切换。
main.py
from timing_decorator import time_md5_comparison
@time_md5_comparison
def md5_comparison(a, b):
if a==b:
return True
else:
return False
timing_decorator.py
def time_md5_comparison(function):
@wraps(function)
def wrapper(*args, **kwargs):
t1 = time.time()
result = function(*args, **kwargs)
t2 = time.time()
print(str(function.__name__) + " " + str("%.6f "%(t2 - t1)))
return result
return wrapper
我可以在main.py 中创建一个变量,比如USE_DECORATOR = True,以便调用装饰器,如果稍后将其设置为False,则调用原始函数?
【问题讨论】:
-
有什么问题?
-
我可以创建一个变量吗,比如 main.py 中的 USE_DECORATOR = True 在这种情况下调用装饰器。如果 USE_DECORATOR = False,则调用原始函数。
-
查看这个答案 - stackoverflow.com/a/28654546/4497519 然后使用命令行中的参数进行切换将是微不足道的。
标签: python python-3.x python-decorators