我正在尝试编写一个argparse系统,其中包含3个参数,其中1个是可选的。根据第三个参数的存在,程序将决定如何继续。 我目前有这个:
parser = argparse.ArgumentParser(description='Some description')
parser.add_argument('-f', '--first', help='Filename for f', required=True)
parser.add_argument('-s', '--second', help='Filename for s', required=True)
parser.add_argument('-t', '--third', help='Filename for t')
args = parser.parse_args()
if args.third:
parse.classify(args['first'], args['second'], args['third'])
else:
parse.classify(args['first'], args['second'], None)
我收到以下错误:TypeError: 'Namespace' object is not subscriptable
答案 0 :(得分:0)
Namespace
个对象不是可订阅的;他们有属性。
parse.classify(args.first, args.second, args.third)
您可以使用vars
创建dict
。
args = vars(args)
然后下标即可。