[Python] 使用 dataclass 简化数据结构:定义、功能与实战
在经典面向对象编程中,为了保存和操作数据往往需要定义多个类,手写 __init__()
、__repr__()
、__eq__()
等方法。Python 3.7 引入了 @dataclass
装饰器,它能自动生成这些常见方法,大幅减少样板代码。本文将介绍 dataclass
的定义与参数、比较与普通类的差别、实战示例,以及常见注意事项。
一、什么是 dataclass
@dataclass
是一种类装饰器,它通过类成员的类型注解,自动生成以下方法:
-
__init__()
:为每个字段创建构造参数; -
__repr__()
:生成可读的实例字符串; -
__eq__()
:基于字段值判断相等; -
可选生成
__lt__
,__le__
,