【发布时间】:2017-06-09 15:01:51
【问题描述】:
我是一名 Python 初学者,对装饰器的基本概念有所了解。我之前研究过 Python-Behave,该框架允许您插入一个装饰器,它的功能就像一个标签。我正在尝试在我目前正在构建的框架中复制它。
CLI 中的自定义参数
parser = argparse.ArgumentParser()
parser.add_argument('--type', help='foo help')
args = parser.parse_args() #args.type would receive the value
CLI
python run.py --type=A
功能
@typeA
def foo_func():
print "type A ran"
@typeB
def bar_func():
print "type B ran"
预期输出
"type A ran"
【问题讨论】:
-
从您的问题中不太清楚问题是什么,因此您可能需要添加一些信息。阅读documentation on function definition 也是一个好主意。
-
如果你这样做,你需要一个单独的装饰器函数来处理参数的每个可能值。像
@type('A')、@type('B')这样的东西可能是一个更好的方法——尽管最好使用不同的名称,因为“类型”是一个内置的对象名称。
标签: python decorator python-decorators