python argparse 可选参数的默认值

2023-12-10

usage:  [-h] [--foo FOO] bar
  1. 如何确保 FOO 的默认值是abc如果我像下面一样执行我的脚本

./myscript.py --foo bar --> bar这里是位置参数。但args.foo正在考虑bar作为论点'--foo'。我想args.foo to be abc and bar作为位置参数


你不能,除非重新修改你的论点。

你应该使用two在这里切换;一种用于打开行为,另一种用于覆盖所选的默认值。您可以使第二个开关暗示第一个:

usage: [-h] [--foo] [--foo-setting FOO] bar

where --foo是一个切换行为的布尔开关,并且--foo-setting允许您设置交换机的配置:

parser.add_argument('--foo', action='store_true')
parser.add_argument('--foo-setting', help='Set the value for foo, implies --foo is given')

# ...
args = parser.parse_args()

if args.foo_setting is not None:
    # default was overridden, explicitly enable the foo feature
    args.foo = True

if args.foo:
    foo_feature_setting = args.foo_setting or 'default value'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python argparse 可选参数的默认值 的相关文章

随机推荐