Skip to main content

Python 数据类 (Data Classes)

大家好!今天我们来聊聊Python的数据类 Data Classes。 Data Classes 能简化类定义,自动生成常用方法。 它适合快速创建存储数据的类,减少重复代码。 默认生成 initrepreq 方法。 首先,我们导入 dataclasses 模块,用 @dataclass 装饰器。 我们定义一个 Student 类,有 name、age 和 grade 字段。 grade 有默认值 0.0,不传也没问题。 创建学生对象 s1 和 s2,用自动的 init 初始化。 打印 s1 和 s2,用 repr 显示字段值。 比较 s1 和 s2,用 eq 自动判断相等性。 然后,我们定义一个 Book 类,用 frozen=True 冻结。初始化后字段就不能修改了。 这样 Book 对象创建后就不能改,很安全。 最后打印 Book 对象,简单又直观。 希望这个简单的例子能帮助你理解Python的Data Classes!

代码示例

from dataclasses import dataclass

# auto generate __init__、__repr__
# and __eq__ dunder methods
@dataclass
class Student:
name: str
age: int
grade: float = 0.0

s1 = Student("Alice", 15)
s2 = Student("Bob", 16, 85.5)

print(s1)
print(s2)
print(s1 == s2)

@dataclass(frozen=True)
class Book:
title: str
price: int

b = Book("Python Intro", 50)
print(b)