Python 向argparse添加单元

Python 向argparse添加单元,python,argparse,Python,Argparse,现在我有 parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) group = parser.add_argument_group("Calibration Options") group.add_argument('-c', '--calibration', default=False, action="store_true", help="Calibrate Gear"

现在我有

parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
group = parser.add_argument_group("Calibration Options")
group.add_argument('-c', '--calibration', default=False, action="store_true", help="Calibrate Gear", dest="calibrate")
group.add_argument('--startFreq', default=400, type=int, help="Start Frequency [MHz]", dest="calStart")
这就产生了这个输出

Calibration Options:
  -c, --calibration     Calibrate Gear (default: False)
  --startFreq           Start Frequency (MHz) (default: 400)
这是可以的,但我希望“单位”包含在默认值中,如

Calibration Options:
  -c, --calibration     Calibrate Gear (default: False)
  --startFreq           Start Frequency (default: 400 MHz)

有没有这样做的必要,或者我不应该这样做的原因?

如果你将起始频率的类型设置为字符串,那么你可以将其默认为“400 MHz”-然后你可以将其解析为你需要的数字-你甚至可以考虑解析单元的可能性,这样用户就可以用100k或200kHz调用你的脚本,等等。

如果您将起始频率的类型设置为字符串,那么您可以将其默认为“400 MHz”-然后您可以将其解析为所需的数字-您甚至可以查看解析单元的可能性,以便用户可以使用100k或200kHz调用您的脚本,等等。

放入您自己的
%(默认值)s
在帮助行中。专门的格式化程序将该字符串添加到帮助中所做的一切

group.add_argument('--startFreq', default=400, type=int, help="Start Frequency (default: %(default)s MHz)", dest="calStart")
我还将使用:

`group.add_argument('-c', '--calibration', action="store_true", help="Calibrate Gear (default: False)", dest="calibrate")
store\u true
的内置默认值为False,但
%(默认值)s
不会捕获该值

argparse.ArgumentDefaultsHelpFormatter
是一个方便的工具。在
帮助
字符串中,它所做的事情没有你做不到的<当默认值可能是一个变量时,code>%(默认值)s最有用,这在定义参数及其
help
参数时是未知的

将您自己的
%(默认)s
放在帮助行中。专门的格式化程序将该字符串添加到帮助中所做的一切

group.add_argument('--startFreq', default=400, type=int, help="Start Frequency (default: %(default)s MHz)", dest="calStart")
我还将使用:

`group.add_argument('-c', '--calibration', action="store_true", help="Calibrate Gear (default: False)", dest="calibrate")
store\u true
的内置默认值为False,但
%(默认值)s
不会捕获该值


argparse.ArgumentDefaultsHelpFormatter
是一个方便的工具。在
帮助
字符串中,它所做的事情没有你做不到的<当默认值可能是一个变量时,code>%(默认值)s最有用,这在定义参数及其
help
参数时是未知的

我个人认为没有必要在默认值之后包含单位。原因是:现在我尝试输入
--startfreq 100 MHz
如果你想在默认值中包含
MHz
,那么默认值不应该是
int
。我个人认为没有必要在默认值之后包含单位value.reason not to:现在我尝试输入
--startfreq 100 MHz
,如果您想在默认值中包含
MHz
,那么默认值不应该是
int