当使用模块optparse
时,我可以像这样获取所有命令行参数的默认值:
当使用optparse
模块时,我可以通过以下方式获取所有命令行参数的默认值:
import optparse
if __name__ == '__main__':
parser = optparse.OptionParser(usage='pokus --help')
parser.add_option("-d", "--debug", action='store_true', dest="debug",
default=False, help='Enabling debugging.')
options, args = parser.parse_args()
print(parser.defaults)
由于optparse
已经被废弃,因此重写代码以使用argparse
模块是明智的。但是我找不到任何方法来获取添加到解析器对象的所有命令行参数的所有默认值:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(usage='pokus --help')
parser.add_argument("-d", "--debug", action='store_true', dest='debug',
default=False, help='Enabling debugging.')
args = parser.parse_args()
# <---- How to get default values for all arguments here?
# Not: vars(args)
我希望在运行程序时使用 (./app.py -d
) 或者没有任何命令行参数 (./app.py
) 时获取所有默认值。
我想要在运行程序时,使用(./app.py -d
)或者没有任何的命令行参数(./app.py
),获得所有默认值。
args
对象上设置了默认值。您是否需要访问它们以进行其他操作? - Martijn Pieters-d
运行程序时,args.debug
被设置为False
。你需要知道当你使用-d
运行程序时默认值是False
的用例是什么? - Martijn Pietersdocopt
吗? - pylangdefaults = vars(parser.parser-args([]))
时,我会得到一个包含所有默认值的字典。顺便说一句:当我有很多参数需要区分命令行指定的值和默认值时,我需要它。 - JiriHnidek