- 在 Python 3.7 中引入的 dataclass 是一种用于存储数据的类,它通过使用新的 @dataclass 装饰器来创建。
- 这个装饰器为用户定义的类自动添加了如
__init__()【java中的构造方法】
和__repr__()【Java中的tostring方法】
等特殊方法。Dataclass 使得类的定义更加简洁,因为它减少了编写用于初始化、比较和打印类实例的样板代码。
Dataclass 的创建和使用
要创建一个 dataclass,你只需要使用 @dataclass 装饰器,并定义类的字段。例如:
from dataclasses import dataclass, field@dataclass
class ApiInfo:method: strurl: strparams: dict = field(default_factory=lambda: {})body: dict = field(default_factory=lambda: {})code: int = 200resp_body: dict = field(default_factory=lambda: {"code": 0, "msg": "操作成功", "data": {}})
Dataclass 的特性
- 默认值:你可以为 dataclass 的字段提供默认值,field。
- 类型提示:dataclass 支持类型提示,这意味着你可以为字段指定预期的数据类型。
- 不可变性:通过将 frozen 参数设置为 True,你可以创建一个不可变的 dataclass,这意味着一旦创建了类的实例,就不能更改其字段的值。
- 继承:dataclass 支持继承,你可以创建一个基于另一个 dataclass 的子类。
这样,你就不需要手动编写 __init__()
、__repr__()
和 __eq__()
方法,因为 dataclass 会为你处理这些。