是否有任何官方支持的方式来获取 Python 中给定 ProtoBuf 消息的父消息?Python protobuf 接口的设计方式,我们保证每条消息最多有一个父消息。如果能够在不构建外部索引的情况下从消息导航到其父级,那就太好了。
显然,此信息存在,我可以使用以下代码获取指向任何给定消息的父级的弱指针:
>>> my_parent = my_message._listener._parent_message_weakref
但是,这使用了内部属性——如果可能的话,我更愿意使用官方支持的方法。
如果没有官方支持的方法来做到这一点,那么我需要决定是构建一个外部子→父索引(这可能会损害性能),还是使用这种“hackish”方法(适当地包装)。