检查是否设置了标志,并存储默认值



我知道您可以使用类似的东西来检查是否设置了标志

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--flag', action='store_true')
args = parser.parse_args()
if args.flag:
foo()

但是,有没有一种方法可以检查标志是否已设置并具有与变量相关联的默认值?像这样,

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--flag', action='store_true', type=str, default='text')
args = parser.parse_args()
if args.flag:
foo(args.flag) # Need the default text now 

根据我的理解,python会根据是否输入了标志来存储True/False。因此,是否可以建立两个单独的目的地?一个持有行动并想拥有价值的人?或者还有别的办法吗?

您需要带有const关键字参数的action="store_const",而不是default

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--flag', action="store_const", const="default text")
args = parser.parse_args()
if args.flag:
print(args.flag) # Need the default text now

最新更新