重复字段返回 AttributeError - 类型对象'Foo'没有属性'nums'



我正在按照本教程在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_FIELD_NUMBER.这是怎么回事?

这一行:

foo = main_pb2.Foo

应该是:

foo = main_pb2.Foo()

我没有调用构造函数。这将修复错误。

最新更新