如何用一个字段动态实例化protobuf对象

2024-04-18 22:14:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个原型信息是这样定义的

message data {
  user string = 1;
  oneof event {
     server.login login = 1;
     server.register register = 2;
     server.delete delete = 3;
  }
}

现在我有了一个python函数

^{pr2}$

现在这个事件可能是原始人的例子

server.login
server.register
server.delete

现在取决于proto的类型,比如登录、注册或删除,我想创建一个数据对象

dataobject = data(user="someuser", {type}=event)

其中需要根据传递的事件对象确定类型。在

现在请注意,我可以用

type = event.DESCRIPTOR.full_name

然后使用某种开关条件并相应地实例化对象。但是,我不想走这条路,因为我必须更新库中所有我添加的新事件类型。在

我希望它确定用于查看event.DESCRIPTOR.full_name的类型参数的字段,并从数据协议中找出相应的字段

如何在python中实现这一点?在


Tags: 数据对象nameeventregister类型dataserver