python中的可选参数

时间:2015-05-04 21:44:00

标签: python argparse

我有一个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语句写得不正确吗?

1 个答案:

答案 0 :(得分:0)

要回答您的第一个问题,add_argument会采用参数'默认'这将做你想要的。 See the documentation

optionParse.add_argument('-n', dest='userDefSize', default=20)

要回答您的第二个问题,请问' dest'参数重新定义传入的值存储在arg命名空间中的位置。在这种情况下,您告诉argparse将值存储在args.userDefSize而不是args.n中,因此args.n不存在。