[英]Type hints for Type[dataclass] is not working in Pycharm
請檢查以下簡單代碼。
@dataclass
class FooData:
bar: int
baz: str
FooData(1, 's') # works fine
def through() -> Type[FooData]:
return FooData
DataClass = through()
DataClass(1, 's') # warning, unexpected arguments
function 的類型提示或返回 Type[Dataclass] 的方法不起作用。
是 PyCharm 錯誤還是我做錯了什么?
Pycharm版本:PyCharm 2021.3.3(專業版)
PyCharm 處理裝飾器的方式似乎有問題。 我有同樣的問題。 做同樣的事情,但也相應地指定__init__
方法使其行為符合預期。
我建議改用Pydantic模型。 它們做同樣的事情,處理得當,並提供了許多不錯的附加功能,包括但不限於自動驗證。 唯一的區別是它們要求您使用關鍵字參數進行初始化。
這是一個例子。
from pydantic import BaseModel
from typing import Type
class FooData(BaseModel):
bar: int
baz: str
FooData(bar=1, baz='s') # works fine
def through() -> Type[FooData]:
return FooData
Model = through()
Model(bar=1, baz='s') # also works fine
除此之外,這保證了 JetBrains 問題跟蹤器中的一張票。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.