-
默认参数
ArgumentParser.set_defaults(**kwargs)
set_defaults()可以设置一些参数的默认值
>>> parser = argparse.ArgumentParser() >>> parser.add_argument(‘foo‘, type=int) >>> parser.set_defaults(bar=123, baz=‘test‘) >>> parser.parse_args([‘456‘]) Namespace(bar=123, baz=‘test‘, foo=456)
解析器级别的默认值会覆盖参数级别的默认值
>>> parser = argparse.ArgumentParser() >>> parser.add_argument(‘--foo‘, default=‘bar‘) >>> parser.set_defaults(foo=‘test‘) >>> parser.parse_args([]) Namespace(foo=‘test‘)
get_defaults()方法可以获取add_argument()和set_defaults()中设置的默认值
>>> parser = argparse.ArgumentParser() >>> parser.add_argument(‘--foo‘, default=‘bar‘) >>> parser.set_defaults(air=‘test‘) >>> parser.get_default(‘air‘) ‘test‘ >>> parser.get_default(‘foo‘) ‘bar‘
-
参数部分使用
如果脚本只使用所传参数中的几个参数,要把其他的参数传给其他脚本,可以使用parse_known_args()方法
ArgumentParser.parse_known_args(args=None, namespace=None)
它的工作方式与parse_args()非常相似,只是在出现额外的参数时不会产生错误,而是返回一个包含填充名称空间和剩余参数字符串的元组和列表
import argparse parser = argparse.ArgumentParser() parser.add_argument(‘bar‘) parser.add_argument(‘-t‘,‘--thread‘) args = parser.parse_known_args() if args: print(args)
运行结果
前缀匹配规则适用于parse_known_args()