Python 重复字段返回AttributeError类型对象';Foo';没有属性';nums';
下面我将介绍如何在Python 重复字段返回AttributeError类型对象';Foo';没有属性';nums';,python,python-3.x,protocol-buffers,Python,Python 3.x,Protocol Buffers,下面我将介绍如何在python中使用协议缓冲区 这是我的main.proto文件: syntax = "proto2" message Foo { repeated int32 nums = 1; } 我无法访问foo.nums 下面是失败的python脚本: import main_pb2 foo = main_pb2.Foo foo.nums.append(1) 这是我运行它时得到的结果: AttributeError: type object 'Foo' has no attr
python
中使用协议缓冲区
这是我的main.proto
文件:
syntax = "proto2"
message Foo {
repeated int32 nums = 1;
}
我无法访问foo.nums
下面是失败的python
脚本:
import main_pb2
foo = main_pb2.Foo
foo.nums.append(1)
这是我运行它时得到的结果:
AttributeError: type object 'Foo' has no attribute 'nums'.
更令人困惑的是,我可以看到Foo
有一个名为Foo.NUMS\u FIELD\u NUMBER的属性。发生了什么事?这一行:
foo = main_pb2.Foo
应该是:
foo = main_pb2.Foo()
我没有给构造器打电话。这修复了错误。错误是抱怨键入对象“Foo”
而不是“Foo”对象的事实实际上是在解释问题,但这是一件你永远不会注意到的事情,直到你第一次被这件事烧坏,让你自己疯狂地调试它,并知道在未来。