是否可以访问传递给参数的选择元组?如果是这样,我该怎么办
例如,如果我有
parser = argparse.ArgumentParser(description='choose location')
parser.add_argument(
"--location",
choices=('here', 'there', 'anywhere')
)
args = parser.parse_args()
我可以访问该元组吗('here', 'there', 'anywhere')
?
事实证明parser.add_argument
实际上返回关联的Action
。您可以从中选择:
>>> import argparse
>>> parser = argparse.ArgumentParser(description='choose location')
>>> action = parser.add_argument(
... "--location",
... choices=('here', 'there', 'anywhere')
... )
>>> action.choices
('here', 'there', 'anywhere')
请注意(AFAIK)这没有记录在任何地方并且may被视为“实施细节”,因此如有更改,恕不另行通知等。
也没有任何publicly获取存储在ArgumentParser
添加后。我相信它们可以作为parser._actions
如果您愿意研究实施细节(并承担与之相关的任何风险)......
您最好的选择是为位置选择创建一个常量,然后在代码中使用它:
LOCATION_CHOICES = ('here', 'there', 'anywhere')
parser = argparse.ArgumentParser(description='choose location')
parser.add_argument(
"--location",
choices=LOCATION_CHOICES
)
args = parser.parse_args()
# Use LOCATION_CHOICES down here...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)