如何解决如何在python中扩展protobuf对象
我已经定义了一个protobuf消息,我想为其创建包装器/代理/样板/扩展名/其他内容,以便添加自定义方法。
protobuf的文档指出,建议您不要直接从protobuf继承,实际上,它是定义大多数方法/属性的描述符和元类。
我想知道当继承不是一个稳定的选择时,或者如果有人使用protobuf codegen扩展/定义自定义Message类是否很幸运,人们如何尽可能地“继承”一个类,这是否合理?想法。
解决方法
没用过protobuf,不知道python的dir
函数能不能用。但如果是这样,你可以做这样的事情:
class A:
def app(self):
print("app")
def bla(self):
print("bla")
class wrapperA:
def __init__(self,a):
self.dict_of_functions = {x:getattr(a,x) for x in dir(A)}
def funcA(self,func_name):
return self.dict_of_functions[func_name]()
a = A()
wa = wrapperA(a)
for x in ["app","bla"]:
wa.funcA(x)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。