上海专业网站建设费免费推广平台有哪些
Python @dataclass
极简指南
📌 核心功能
@dataclass
是 Python 3.7+ 的装饰器,可自动化生成以下类方法:
__init__
、__repr__
、__eq__
,专为数据存储类设计。
适用场景:参数配置、DTO对象、简单数据模型。
🚀 基础用法
定义类
from dataclasses import dataclass@dataclass
class User:name: str # 必填字段age: int = 18 # 带默认值的字段active: bool = True
自动获得的能力
u1 = User("Alice") # 自动生成构造方法
print(u1) # 输出: User(name='Alice', age=18, active=True)
u2 = User("Alice")
print(u1 == u2) # True (自动对比所有字段值)
⚠️ 必需知识
1. 字段声明规则
@dataclass
class Demo:a: str # ✅ 无默认值的字段必须在前b: int = 0# c: float # ❌ 错误!缺失类型注解
2. 防御可变默认值
@dataclass
class Node:# 错误:所有实例共享同一个列表# children: list = [] # 正确:为每个实例创建独立列表children: list = field(default_factory=list)
💡 核心价值
场景 | 传统类代码量 | 数据类代码量 |
---|---|---|
定义含10个字段的类 | ~50行 | 10行 |
新增字段维护点 | 4处 | 1处 |
📖 扩展学习
推荐教学视频:
《Python数据类终极指南》