-1 python command-line-interface argparse python-3.x
我正在尝试在终端中运行我的程序:
py program.py -t
Run Code Online (Sandbox Code Playgroud)
并且它没有将布尔值设置为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()
Run Code Online (Sandbox Code Playgroud)
我在parse_args之后有一个语句,它打印了isTitle boolean来验证它已被设置,并且它总是返回True.你们有什么建议吗?如果需要,我可以添加更多代码/诊断语句.谢谢!
dest='isTitle'并不意味着一个变量命名isTitle将被改变,这意味着该值将被存储在r.isTitle,即在对象的parse_args调用返回.argparse修改全局范围内的任何变量都是疯狂的.
你想要的只是:
a.add_argument('-t', '--title', action='store_true', dest='isTitle', help='show title')
r = a.parse_args()
print(r.isTitle)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |