繁体   English   中英

python 类型提示 class 和子项 class

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM