1 未设置default
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"--relaxation", '-r', action="store_false",
)
parser.add_argument(
"--save_outputs", '-s', action="store_true",
)
args = parser.parse_args()
print(args)
(1)不加参数执行:python test.py 结果为:
Namespace(relaxation=True, save_outputs=False)
action="store_false,默认值是True。
action="store_true,默认值是False。
(2)python test.py -r -s 加参数执行,结果为:
Namespace(relaxation=False, save_outputs=True)
action="store_false,手动指定该参数后才为False。
action="store_true,手动指定该参数后才为True。
2 设置default
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"--relaxation", '-r', action="store_false", default=False,
)
parser.add_argument(
"--save_outputs", '-s', action="store_true", default=True,
)
args = parser.parse_args()
print(args)
(1)不加参数执行:python test.py 结果为:
Namespace(relaxation=False, save_outputs=True)
默认取default的值。
(2)python test.py -r -s 加参数执行,结果为:
Namespace(relaxation=False, save_outputs=True)
取action内的值。
3 小结
default 的优先级比未激活的 action 高,激活的 action 优先级比 default 高。即:有defualt优先default的值,有action属性优先action的值。