gpt4 book ai didi

python - 访问传递给 argparse 参数的选项?

转载 作者:太空狗 更新时间:2023-10-29 21:33:40 25 4
gpt4 key购买 nike

是否可以访问传递给参数的选择元组?如果是这样,我该怎么做

例如如果我有

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')

请注意,(据我所知)这在任何地方都没有记录,可能被视为“实现细节”,因此如有更改,恕不另行通知等。

也没有任何公开可访问的方法来获取添加后存储在 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...

关于python - 访问传递给 argparse 参数的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com