import argparse parser = argparse.ArgumentParser() - 或 --)- 或 --),并且在命令行中是可选的parser.add_argument() 下面具体看一下例子:
parser.add_argument( "--prompt", type=str, nargs="?", default="a painting of a virus monster playing guitar", help="the prompt to render" ) nargs 参数用于指定一个命令行参数可以接受的值的数量。nargs 可以接受以下几种值:
nargs=2 表示该参数接受两个值)'?': 表示该参数是可选的,可以接受零个或一个值'*': 接受零个或多个值'+': 接受一个或多个值下面重点看 nargs='?'的情况:
当 nargs="?" 时,参数可以接受零个或一个值。如果没有提供值,则使用默认值(如果指定了 default 参数)。如果没有提供值且没有指定默认值,则该参数的值为 None。
nargs='?'时,由于位置参数不带参数名,nargs 可以接受零个或一个值,因此位置参数是不带 const 参数的,只有 default 参数parser.add_argument( 'bar', nargs='?', default='default_bar', help='位置参数,可以接受零个或一个值' ) args = parser.parse_args() print(f"bar: {args.bar}") 1. 没有提供 bar 参数:
python script.py 输出: bar: default_bar
2. 提供 bar 参数和一个值:
python script.py some_value 输出: bar: some_value
parser.add_argument( '--foo', nargs='?', const='default_const', # 当没有提供值时使用的常量值 default='default_value', # 完全没有提供参数时使用的默认值 help='可选参数,可以接受零个或一个值' ) args = parser.parse_args() print(f"foo: {args.foo}") 1. 没有提供 --foo 参数:
python script.py 输出: foo: default_value
2. 提供 --foo 参数但没有值:
python script.py --foo 输出: foo: default_const
3. 提供 --foo 参数和一个值:
python script.py --foo some_value 输出: foo: some_value
const 和 default 的区别const: 当参数存在但没有提供值时使用的常量值。只有在置 nargs='?' 或 nargs='*' 时才有意义default: 当参数完全没有出现在命令行中时使用的默认值
上一篇:【综合架构】模板机克隆
下一篇:C# 设计模式之桥接模式