如何解决AttributeError: 命名空间对象没有属性“累积”
这是我当前的代码:
parser = argparse.ArgumentParser(description='Optic disc segmentation.')
parser.add_argument('-f',dest='file',action='store',type=str,help='The image to process.')
args = parser.parse_args()
print(args.accumulate(args.integers))
我在最后一行不断收到此错误:
AttributeError: 'Namespace' object has no attribute 'accumulate'
解决方法
好像你直接复制了argparse Example,但是没看懂用法:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers',metavar='N',type=int,nargs='+',help='an integer for the accumulator')
parser.add_argument('--sum',dest='accumulate',action='store_const',const=sum,default=max,help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
parse_args
方法创建一个 Namespace
对象,用于存储先前调用 add_argument
的属性:
ArgumentParser.parse_args(args=None,namespace=None)
将参数字符串转换为对象并将它们分配为命名空间的属性。返回填充的命名空间。
示例中 args
有 accumulate
和 integers
的原因是因为之前两次调用 add_argument
:一个位置参数“整数”和一个可选参数与dest='accumulate'
。 它们不是 parse_args
返回的对象的内置方法。它们取决于对 add_argument
的调用。
在您的示例中:
parser = argparse.ArgumentParser(description='Optic disc segmentation.')
parser.add_argument('-f',dest='file',action='store',type=str,help='The image to process.')
args = parser.parse_args()
您只使用 add_argument
参数对 dest='file'
进行了 1 次调用,因此 args
将只有 file
属性,该属性应包含传递给 {{1 }} 选项。
-f
所以,唯一要打印的是 >>> import argparse
>>> parser = argparse.ArgumentParser(description='Optic disc segmentation.')
>>> parser.add_argument('-f',help='The image to process.')
>>> args = parser.parse_args()
>>> args
Namespace(file=None)
,当你调用它时会得到一个值
print(args.file)
我建议查看 add_argument
方法中的更多示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。