如何在协议缓冲区Python中为嵌入的消息字段赋值



我有以下原型,我正试图分配一个值到一个嵌入的消息字段

message Foo {
  required Bar bar = 1;
}
message Bar {
  optional int32 i = 1;
} 

当我在python中编写以下代码时,它给出了以下错误

foo = Foo()
foo.bar.i = 1
错误:

AttributeError: 'instancemethod'对象没有属性'i'

如何处理这个错误?

要做你想做的,在Python中,你必须在Foo类中定义bar方法。像这样做:

class Foo:
    i = 1
    def bar(self):
        return self.i
if __name__ == '__main__':
    foo = Foo()
    foo.bar = 1
    print(foo.bar)  # this will print 1

最新更新