如何指定解析的参数应该是:
False
如果未指定True
如果存在(没有值)例如,我希望发生以下情况:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--the_arg", ...)
print(parser.parse_args(["--the_arg"]).the_arg) # should print True
print(parser.parse_args([]).the_arg) # should print False
print(parser.parse_args(["--the_arg", "my_value"]).the_arg) # should print "my_value"
答案 0 :(得分:4)
解决方案是指定parser.add_argument的所有nargs
、const
和default
参数
这有效:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--the_arg", nargs="?", const=True, default=False)
print(parser.parse_args(["--the_arg"]).the_arg) #prints True
print(parser.parse_args().the_arg) #prints False
print(parser.parse_args(["--the_arg", "my_value"]).the_arg) #prints "my_value"