[英]python type hinting for class and children in composition class
我试图基本上做到这一点:
@dataclass
class A:
pass
@dataclass
class B(A):
pass
@dataclass
class container:
stuff: List[A OR B OR any future defined child class]
我在此处和 PEP484 页面上环顾四周找到的唯一方法似乎看起来像这样......除了它不起作用
thing_co = TypeVar('thing_co', covariant=True)
class ListOfAOrLower(List[thing_co ]):
pass
@dataclass
class container:
stuff: ListOfAOrLower
当我尝试创建我的容器(即“容器([B()])”)时,vscode 中的 pylance 说类型不兼容。 当我尝试说“stuff”是 List[thing_co] 时,pylance 报告“TypeVar “thing_co”在这种情况下没有意义”。
我觉得我正在尝试做的事情非常简单,但我不能让类型检查器接受这个非常标准的表述。 谁能建议如何根据我的意愿弯曲类型检查器? 谢谢
对我来说,问题是 pylance 与数据类装饰器交互。 通过指定我自己的 init function 解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.