2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
subparsers = parser.add_subparsers(help = "You should explicitly specify either group_1 or gropup_2")
parser_g1 = subparsers.add_parser("group_1")
parser_g1.add_argument("group_1_arg1")
parser_g2 = subparsers.add_parser("group_2")
parser_g2.add_argument("group_2_arg1")
parser_g2.add_argument("group_2_arg2")
它看起來是正確的方法,但問題是確定在運(yùn)行時(shí)選擇了哪個(gè)組。如果第一個(gè)參數(shù)是group_1我得到異常分配args.group_2_arg1和args.group_2_arg2。如果第一個(gè)參數(shù)是group_2我得到異常分配args.group_1_arg1
例外是一種'Namespace' object has no attribute 'group_1_arg1' 有沒有辦法檢查使用了哪個(gè) paser 組,其他,然后檢查命名空間?秒

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
好吧,簡(jiǎn)單的答案是使用
if hasattr(args, 'group_1_arg1'):
其他論點(diǎn)也是如此。
添加回答
舉報(bào)