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”对象的事实实际上是在解释问题,但这是一件你永远不会注意到的事情,直到你第一次被这件事烧坏,让你自己疯狂地调试它,并知道在未来。