Argparse 不会解析我在命令行中传递的任何参数

Argparse won't parse any arguments I pass in the command line

我正在尝试 运行 我在终端中的程序:

py program.py -t

并且它没有将布尔值设置为 False。据我所知,我的所有代码看起来都是正确的。

isTitle = True

a = argparse.ArgumentParser(prog='program.py', usage='%(prog) [options]', description='The fooiest of bar')
a.add_argument('-t', '--title', action='store_const', const=False, dest='isTitle', help='show title')
r = a.parse_args()

我在 parse_args 之后有一个语句打印 isTitle 布尔值以验证它是否已设置,它始终 returns 为真。你们有什么建议吗?如果需要,我可以添加更多 code/diagnostic 语句。谢谢!

dest='isTitle' 并不意味着名为 isTitle 变量 将被更改,它意味着值将存储在 r.isTitle ,即在对象中 parse_args 调用 returns。 argparse 修改全局范围内的任何变量都是疯狂的。

你想要的只是:

a.add_argument('-t', '--title', action='store_true', dest='isTitle', help='show title')
r = a.parse_args()
print(r.isTitle)