如何解决为支持子类的 Callable 键入提示?
我想对一个方法进行类型提示,该方法可能会接收对 A 或 A 的子类进行操作的 Callable:
def do(f: Callable[[A],None])
我也试过:
def do(f: Callable[[typing.Type[A]],None])
一个完整的虚拟示例如下所示:
class A:
n = 1
class B(A):
n = 2
def something_a(x: A):
print(x.n)
def something_b(x: B):
print(x.n)
def do(f: Callable[[A],None]):
f(B())
do(something_a) # ok
do(something_b) # PyCharm type check warnning
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。