【发布时间】:2019-10-24 12:31:04
【问题描述】:
似乎将元组设置为metavar 用于位置参数并请求帮助不起作用:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('size', type=int, nargs=2, help='size', metavar=('w', 'h'))
args = parser.parse_args()
print(args)
当调用 prog.py --help 时会产生错误。 Python3 版本(我尝试了 3.5、3.6、3.8)之间的错误不同,包括ValueError: too many values to unpack (expected 1) 或TypeError: sequence item 0: expected str instance, tuple found。 See live example on Wandbox.
对于可选参数,一切都很好:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--size', type=int, nargs=2, help='size', metavar=('w', 'h'))
args = parser.parse_args()
print(args)
我的代码是无效的,还是我在 Python 实现中发现了错误?
请注意,只需解析参数即可按预期工作。
【问题讨论】:
-
metavar不是仅用于可选参数吗? -
不仅如此,请看official docs的例子。但是,元组元变量仅用于以下示例中的可选参数。
标签: python python-3.x argparse