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