Google Protobuf空字段和消息标准(Python)

假设我有以下protobuf文件定义:

syntax = "proto2";
message request {
  optional string a = 1;
  optional bytes b = 2;
}
message dummy {
  optional string u = 1;
  optional request v = 2;
}

以下是我的疑惑/要求:

  • 检查是否有任何字段已设置或不在“请求”对象中?
  • 检查字段“u”是否设置在“虚拟”对象中?
  • 检查“虚拟”对象中的字段“v”是否已设置(表示任何内部字段设置为某个值)?
  • 如何处理涉及具有默认值的字段的情况?
  • 以这种方式编写代码,以便它与Google protobufs的第3版兼容。
  • 我试图创建2个对象“p”和“q”类型的虚拟对象。 最初,它们都以“HasField(”v“)”的条件返回“False”。 然后,我尝试使用代码“pvCopyFrom(qv)”将字段“v”从“q”复制到“p”。 但是现在,对象“p”在条件“HasField(”v“)”上返回“True”。 为什么会发生?
  • 我的代码库目前使用python版本2.7.5和protobuf版本2.6。 这可能会发生,我可能会在未来升级python和protobuf版本。 因此,想知道我是否可以在不同版本之间兼容的方式编写代码。

    链接地址: http://www.djcxy.com/p/77291.html

    上一篇: Google Protobuf empty fields and messages criteria (Python)

    下一篇: Python: print protobuf spec (fields, types)