【发布时间】:2021-11-04 12:23:15
【问题描述】:
例如,我们有一个类:
class A:
def send(msg: bytes) -> None:
# implementation...
pass
def recv(n: int) -> bytes:
# implementation
pass
还有一个功能:
def a(obj, n: int) -> None:
received = obj.recv(n)
obj.send(received)
很明显,不仅A 类的实例可以作为obj 参数传递,socket.socket 的实例也可以传递,可能还有其他类,它们实现了recv 和send。
如何注释/键入提示 obj 参数,使其显示如下内容:
obj type must possess methods send and recv
send method must be of type Callable[[bytes], None]
recv method must be of type Callable[[int], bytes]
【问题讨论】:
标签: python types annotations type-hinting python-typing