【发布时间】:2015-05-16 07:40:38
【问题描述】:
有没有比pass a delimited string and parse it later 更优雅的方式将可选的整数列表传递给argparse?我还有一个位置论点。
parser.add_argument('--ids', type=int, nargs='+')
parser.add_argument('cmd')
不起作用,因为argparse 试图抓取cmd 并抱怨它不是整数。
理想情况下,我想使用其中之一来执行
program.py --ids 6,32,12 refresh
program.py --ids 6 32 12 refresh
或类似的东西,但也可以
program.py refresh
【问题讨论】:
-
您可以通过将任意可调用对象作为
type传递来立即而不是稍后解析字符串。 -
@Kevin 以
perfect_square为例? -
是的,没错。您可以使用
operator.methodcaller('split', ',')之类的东西作为您的type,自动以逗号分隔。 -
@Kevin 你应该把你的 cmets 变成一个答案