2

构建原型对象时,“TypeError:无法分配给扩展“actionRequest”,因为它是重复或复合类型。”

原型文件:

message Message{
    message MessageContent{
        extensions 100 to max;
    }
     optional MessageContent content = 1;
}
message ActionRequest{
    optional string token = 1;

}

extend Message.MessageContent {
   optional ActionRequest actionRequest = 200;
}

代码:

import TestPb_pb2
message = TestPb_pb2.Message()
request = TestPb_pb2.ActionRequest()
message.content.Extensions[TestPb_pb2.actionRequest] = request
4

1 回答 1

2

Protocol Buffers Python API 自动为您构建扩展消息的实例。message.content.Extensions[TestPb_pb2.actionRequest]因此,您可以写入预先构建的消息,而不是分配给:

message.content.Extensions[TestPb_pb2.actionRequest].token = "foobar"

(至于为什么API是这样设计的,我不知道。)

于 2013-09-24T17:09:39.727 回答