如何为Python函数中的所有协议缓冲区对象添加类型提示?

haz*_*ard 1 python type-hinting protocol-buffers

我想为接受任何 google protocol buffer 对象的函数中的参数添加类型提示。

def do_something(protobuf_obj: WHAT_IS_HERE):
    # protobuf_obj can be any protocol buffer instance
    pass
Run Code Online (Sandbox Code Playgroud)

我应该从图书馆放什么课google.protobuf

haz*_*ard 5

我最终使用了Message抽象基类。来自文档:

class google.protobuf.message.Message

协议消息的抽象基类。

协议消息类几乎总是由协议编译器生成。这些生成的类型子类化 Message 并实现如下所示的方法。

所以,现在看起来像:

from google.protobuf.message import Message

def do_something(protobuf_obj: Message):
    # protobuf_obj can be any protocol buffer instance
    pass

Run Code Online (Sandbox Code Playgroud)