簡體   English   中英

Type[dataclass] 的類型提示在 Pycharm 中不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM