用途:帮助在 Python 中创建干净、类型安全的数据结构,覆盖 dataclasses、attrs、Pydantic 三种数据建模方式,适用于数据传输对象、API 请求/响应模型、配置结构、值对象、JSON 序列化与外部数据校验等场景。
主要能力:dataclasses 提供 @dataclass 装饰器,支持默认值、frozen、order、slots、kw_only 参数,field() 可控制 init、repr、compare 与 default_factory,并支持继承、post_init 计算字段及 asdict/astuple 转换。attrs 通过 pip install attrs 安装,提供 validators(instance_of、min_len、matches_re、and_、ge、le)与 converters,可在初始化时校验和转换。Pydantic 通过 pip install pydantic 安装,提供 BaseModel、Field 约束、field_validator、model_validator、computed_field、嵌套与泛型模型,支持 model_dump、model_dump_json、model_validate_json 及自定义序列化,并可结合 pydantic_settings 做配置管理。
使用方式:按需选择工具。简单数据容器且无需额外依赖时用 dataclasses;需要校验器、转换器或更丰富字段配置时用 attrs;需要自动校验、类型强制转换、JSON 序列化与 OpenAPI/JSON schema 生成时用 Pydantic。
适用场景与限制:dataclasses 属标准库,适合 Python 3.7+ 基础建模;attrs 功能更多、性能较好;Pydantic 适合 API 与配置边界校验。常见陷阱包括可变默认值未用 default_factory、未校验外部数据、混淆业务逻辑与数据模型、未使用 frozen 实现不可变、选错工具等。资料未提供具体版本要求、性能基准与收费信息。