簡體   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