use*_*061 -4 python python-3.x
这是我的示例程序:
#!/usr/bin/python
import os
import string
import argparse
parser = argparse.ArgumentParser(description="get all versions")
parser.add_argument(test-version)
version = parser.parse_args()
print(version.test-version)
Run Code Online (Sandbox Code Playgroud)
当我运行python脚本时,它会抛出错误:
AttributeError: 'Namespace' object has no attribute 'test'
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用参数"test"而不是"test-version"的相同示例,它可以正常工作.
对我来说,重要的是 - 在我的论证名称中.
我该如何解决这个问题?
谢谢
问题是你不能-在变量名中有一个,因为它是减法运算符.因此,在您的代码中,解释器正在尝试执行version.test - version此操作,因为version没有.test属性而您无法从某些内容中减去命名空间.如果要-在参数中使用,则需要在中设置dest=参数.add_argument().
例如:
import argparse
parser = argparse.ArgumentParser(description="get all versions")
parser.add_argument('--test-version', dest='test_version')
version = parser.parse_args(['--test-version', '1'])
print(version.test_version)
Run Code Online (Sandbox Code Playgroud)
或者如果你想将它作为状态标志:
import argparse
parser = argparse.ArgumentParser(description="get all versions")
parser.add_argument('--test-version', action='store_true', dest='test_version')
version = parser.parse_args(['--test-version'])
print(version.test_version)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |