PyCharm 2026.2 Help

Pydantic​(Pydantic)

Pydantic 是一个通过标准 Python 类型注解定义数据模型的数据验证库。 PyCharm 为 Pydantic 模型提供了专门支持,构建在与其他 类型提示功能 相同的类型引擎之上。

支持涵盖 pydantic.BaseModel 及其子类、 pydantic.dataclasses.dataclass 、泛型模型,以及相关构造,如 字段 、模型和字段验证器及 ConfigDict 选项。 支持识别 Pydantic v1 和 v2。

模型字段的代码洞察

实例化 Pydantic 模型时,PyCharm 会将已声明的字段视为 __init__ 的关键字实参,并提供以下代码洞察:

  • 字段名称作为关键字参数的补全,考虑它们的声明类型和默认值。

  • 针对每个字段传递值时的类型检查,依据相应的注解进行。

  • 用于高亮显示缺失的必填字段的检查。

  • 支持从 __init__ 调用中的关键字实参导航到字段声明及返回,包括跨子类和基类。

from pydantic import BaseModel class User(BaseModel): id: int name: str is_active: bool = True User(id=1, name="Alice") # valid User(id="not-an-int", name="Steve") # type mismatch on id User(id=1) # name is missing

字段别名和验证配置

通过 Field(alias=...) 声明别名的字段可以作为构造函数调用中的关键字参数被接受,并且不会出现错误的“意外参数”警告。

PyCharm 会遵循模型的 ConfigDict ,因此编辑器中的代码洞察与运行时验证行为一致:

  • populate_by_name=Truevalidate_by_name=True—— 除了别名外,也接受字段名称。

  • validate_by_alias=True—— 别名可用于验证。

当两项选项都启用时,字段名称和别名都会被视为有效的关键字参数:

from pydantic import BaseModel, Field class Model(BaseModel, validate_by_name=True, validate_by_alias=True): my_field: str = Field(alias='my_alias') Model(my_alias='foo') # valid Model(my_field='foo') # valid

重构和验证器

重命名模型字段会更新 __init__ 调用中的所有关键字实参,并将更改传播到子类和基类。 在 __init__ 调用中重命名关键字实参时,会同步更新对应的字段声明。

@field_validator@model_validator 或传统 @validator@root_validator 装饰器声明的字段和模型验证器均可识别:第一个参数类型将自动设置,并且为装饰后的函数调整标准检查,避免产生误报。

2026年 7月 14日