如何添加一个可选参数,该参数具有默认值并且可以用另一个值调用或可以不带值调用(并且具有默认值)。 所以我有这样的说法Python argparse可选参数无参数(不存储为true)
parser.add_argument("-a", "--automatic", type=int, default=8)
,我希望能够调用。 My_script.py -a
如果我想要一个以8作为参数的自动模式,但是我也想要例如My_script.py -a 10
,如果我想要一个自动模式以10(或任何其他数字)作为参数。 问题是,当我用My_script.py -a
运行时,我得到预期的一个参数。如果我不想指定8,我也不允许指定-a,然后我必须运行My_script.py
,这不是我想要的。
如果通过没有任何事情等同于传递没有值的'-a',为什么允许后者?它只是使分析中的错误/歧义变得更容易。 'nargs ='?''类型的作品(当它发生时,你必须用'8'手动替换'None',因为如果没有参数提供,它不是默认情况,所以它存储'None'),但它是一个坏主意。 – ShadowRanger
这似乎不明确。解析器应该如何判断'-a'之后的东西是否是'-a'选项的值或位置参数?无论argparse是否支持这一点,我认为这不是一个好的界面。 – user2357112
用'nargs ='?''玩,并给它'默认'和'const'参数。 – hpaulj