Python 如何设置argparse metavar参数的默认值?

Python 如何设置argparse metavar参数的默认值?,python,python-3.x,argparse,Python,Python 3.x,Argparse,我正在使用argparse,以便我的python脚本可以接受参数。在argparse中,我使用了metavar,因此我可以为一个标志接受两个参数。如果没有指定这些参数,我希望能够为它们设置默认值。如何为metavar参数设置默认值 parser = argparse.ArgumentParser(description='Sample ArgumentParser') parser.add_argument("--stuff", nargs=2, metavar=('arg1', 'ar

我正在使用argparse,以便我的python脚本可以接受参数。在argparse中,我使用了metavar,因此我可以为一个标志接受两个参数。如果没有指定这些参数,我希望能够为它们设置默认值。如何为metavar参数设置默认值

parser = argparse.ArgumentParser(description='Sample ArgumentParser')    
parser.add_argument("--stuff", nargs=2, metavar=('arg1', 'arg2'))

正如@hpaulj所说,只需使用
default
参数:

import argparse

parser = argparse.ArgumentParser(description='Sample ArgumentParser')
parser.add_argument(
    "--stuff",
    nargs=2,
    metavar=('arg1', 'arg2'),
    default=('arg1def', 'arg2def')
)

args = parser.parse_args()
print('Args:', args)
输出:

λ python tmp.py
Args: Namespace(stuff=('arg1def', 'arg2def'))

λ python tmp.py --stuff bob ross
Args: Namespace(stuff=['bob', 'ross'])

正如@hpaulj所说,只需使用
default
参数:

import argparse

parser = argparse.ArgumentParser(description='Sample ArgumentParser')
parser.add_argument(
    "--stuff",
    nargs=2,
    metavar=('arg1', 'arg2'),
    default=('arg1def', 'arg2def')
)

args = parser.parse_args()
print('Args:', args)
输出:

λ python tmp.py
Args: Namespace(stuff=('arg1def', 'arg2def'))

λ python tmp.py --stuff bob ross
Args: Namespace(stuff=['bob', 'ross'])

Metavar只控制
用法
帮助
中使用的名称。有一个单独的
默认值
参数。你有一个例子来说明你的意思吗@下面的答案不起作用。Metavar只控制
用法
帮助
中使用的名称。有一个单独的
默认值
参数。你有一个例子来说明你的意思吗@下面的Ben回答不起作用。我试过了,但是当我使用默认值并传入元组时,我得到了
错误:参数--stuff:应为2个参数
如果提供'--stuff'标志,还必须提供2个值。当您根本不使用'--stuff'时,将使用默认值。我尝试过这样做,但当我使用默认值并传入元组时,我得到了
错误:参数--stuff:预期的两个参数
如果您提供'--stuff'标志,您还必须提供两个值。当您根本不使用'--stuff'时,将使用默认值。