我希望有一个可选参数,如果仅存在未指定值的标志,则默认为一个值,但是存储用户指定的值,而不是如果用户指定一个值,则存储默认值。是否已经有可用于此的操作?
示例:
python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2
我可以创建一个动作,但想查看是否存在执行此操作的方法。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--example', nargs='?', const=1, type=int)
args = parser.parse_args()
print(args)
% test.py Namespace(example=None) % test.py --example Namespace(example=1) % test.py --example 2 Namespace(example=2)
nargs='?'
表示0或1自变量const=1
设置参数为0时的默认值type=int
将参数转换为inttest.py
,如果您希望example
将--example
设置为1,则包括default=1
。也就是说,用parser.add_argument('--example', nargs='?', const=1, type=int, default=1)
然后
% test.py Namespace(example=1)
default
脚本中使用add_argument
的test.py
参数:import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--example', default=1)
args = parser.parse_args()
print(args.example)
test.py --example % 1 test.py --example 2 % 2
详细信息为here。