【问题标题】:Optional argument in pythonpython中的可选参数
【发布时间】:2015-07-14 10:49:18
【问题描述】:

我有一个 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 语句写错了吗?

【问题讨论】:

  • 说真的,你愿意RTFM吗?它解释了如何为参数设置默认值,而无需进行后期处理。另外,请注意您明确指定 destination 为userDefSize不是 n,您应该通过identityNone /i>,不是真实性。

标签: python argparse


【解决方案1】:

要回答您的第一个问题,add_argument 需要一个参数 'default' 来满足您的需求。 See the documentation

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

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

【讨论】:

    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 2023-03-21
    • 2010-12-07
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多