0

我正在尝试制作一个消息类来表示一棵树,所以我很自然地选择了:

class Node(messages.Message):
    name = messages.StringField(1)
    children = messages.MessageField(Node,2,repeated=True)

但这不起作用,因为 atline 3 Node尚未定义且未解决。

关于如何使用 protorpc 消息制作树(任意树,而不是固定深度的树)的任何想法?


编辑:

试过:

class AbstractNode(messages.Message):
    pass


class Node(AbstractNode):
    name = messages.StringField(1)
    children = messages.MessageField(AbstractNode, 2, repeated=True)

端点抱怨:MessageDefinitionError: Message types may only inherit from Message

4

1 回答 1

3

您可以使用字符串来执行此操作:

>>> class Node(messages.Message):
...     name = messages.StringField(1)
...     children = messages.MessageField('Node',2,repeated=True)

您可以在此处的 echo 服务演示中看到一个示例:

https://github.com/google/protorpc/blob/master/demos/echo/services.py#L81

于 2015-04-14T12:55:44.353 回答