我有一个python程序,我试图添加一个可选参数。
如果用户没有输入任何内容,那么我希望该值默认为20.但是,如果他们确实输入了值,我将使用它们的值。我把它写进了程序就像这样:
optionParse= argparse.ArgumentParser(description='Change Number of Locations')
optionParse.add_argument('-n', dest='userDefSize')
args=optionParse.parse_args()
if args.n:
sizeOfList=args.userDefSize
else:
sizeOfList=20
但出于某种原因,它一直在说:
AttributeError: 'Namespace' object has no attribute 'n'
这里会出现什么问题?我的if语句写得不正确吗?
答案 0 :(得分:0)
要回答您的第一个问题,add_argument会采用参数'默认'这将做你想要的。 See the documentation
optionParse.add_argument('-n', dest='userDefSize', default=20)
要回答您的第二个问题,请问' dest'参数重新定义传入的值存储在arg命名空间中的位置。在这种情况下,您告诉argparse将值存储在args.userDefSize
而不是args.n
中,因此args.n
不存在。