假设我有以下没有任何类型提示的简单示例:
def wrapper(cls):
class Subclass(cls):
def subclass_method(self):
pass
return Subclass
@wrapper
class Parent:
def parent_method(self):
pass
p = Parent()
p.parent_method()
p.subclass_method()
如何使用 typehints 重构此代码,以便当我mypy针对 的实例运行时Parent,它会同时识别subclass_method和parent_method?
可能的解决方案:
- 使用 mixin
Parent(Mixin):有效,但避免使用装饰器。没有就可以实现吗? - 将方法修补到现有类上:仍然存在
subclass_method在 mypy中解决的相同问题 - 自定义 Mypy 插件:不确定从哪里开始使用这个插件,或者如果没有它是否有可能。