理解 Python 的 Dataclasses第一篇(转)

发布时间 2023-04-20 11:24:47作者: 奋斗终生

原文:https://zhuanlan.zhihu.com/p/59657729

引言

Dataclasses是一些适合于存储数据对象(data object)Python类。你可能会问,什么是数据对象?下面是一个并不详尽的用于定义数据对象的特征列表:

他们存储并表示特定的数据类型。例如:一个数字。对于那些熟悉对象关系映射(Object Relational Mapping,简称 ORM)的人来说,一个模型实例就是一个数据对象。它表示了一种特定类型的实体。它存储了用于定义或表示那种实体的属性。

他们能够被用于和同类型的其他对象进行比较。例如,一个数字可能大于,小于或等于另一个数字。

当然数据对象还有更多的特征,但上述内容足以帮助你理解关键部分。

为了理解Dataclases,我们将实现一个简单的类。它能够存储一个数字,并允许我们执行上面提到的各种运算。

首先,我们将使用普通的类,然后我们使用Dataclasses来实现相同的结果。

但是在我们开始之前,还是要提一下Dataclasses的用法。

Python3.7 提供了一个装饰器dataclass,用以把一个类转化为dataclass

你需要做的就是把类包裹进装饰器里:

from dataclasses import dataclass
@dataclass
class A:
 ...

现在,让我们深入了解一下 dataclass 带给我们的变化和用途。