2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
更好的設(shè)計(jì)是擁有一個(gè)帶有兩個(gè)參數(shù)的選項(xiàng):
parser.add_argument('-a', nargs=2)
然后,您要么使用2個(gè)參數(shù)指定選項(xiàng),要么根本不指定它。
$ script -a 1 2
或者
$ script
自定義操作(或后處理)可以將元組args.a
分為兩個(gè)單獨(dú)的值args.a
和args.b
。

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
Argparse本身不支持此類使用。
最有效的方法是檢查并檢查解析后是否滿足這些類型的條件:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-b')
parser.add_argument('-c')
args = parser.parse_args()
required_together = ('b','c')
# args.b will be None if b is not provided
if not all([getattr(args,x) for x in required_together]):
raise RuntimeError("Cannot supply -c without -b")
添加回答
舉報(bào)