【发布时间】:2020-04-22 09:48:02
【问题描述】:
所以我有类Foo,它包含3个字段:整数start和end和字符串name。
我想从 argparse 中获取Foos 的列表,使用类似的输入
my_program --foo 5 7 first --foo 10 12 second.
parser.add_argument('--foo', action='append', default=[], nargs=2) 非常接近,它将返回列表列表[['5', '7', 'first'], ['10', '12', 'second']]
我尝试添加 type=Foo,但它尝试转换每个参数。[[Foo('5'), Foo('7'), Foo('first')], ...] 我想在 argparse 中执行转换 + 验证。有可能吗?
【问题讨论】:
-
您也许可以使用自定义
Action子类来做到这一点。这会看到完整的值列表。正如您所发现的,type分别应用于每个字符串。但通常在解析后进行自己的验证和转换会更简单。
标签: python python-3.x command-line-arguments argparse