Python Dataclass: 简化类创建的利器
Python 的'dataclass' 是 Python 3.7 中引入的一个装饰器,它可以简化创建类的过程,尤其是用于创建只包含数据的类。'dataclass' 装饰器自动为类生成一些常见的方法,如' init ', ' repr ', ' eq ' 等。
要使用'dataclass',首先需要导入'dataclass' 装饰器:
from dataclasses import dataclass
然后,在类定义上方添加'@dataclass' 装饰器,即可将该类定义为一个'dataclass'。例如,创建一个名为'Person' 的'dataclass',其中包含'name' 和'age' 属性:
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
以上代码等价于手动编写如下的类定义:
class Person:
def __init__(self, name: str, age: int):
self.name = name
self.age = age
def __repr__(self):
return f'Person(name={self.name}, age={self.age})'
def __eq__(self, other):
if isinstance(other, Person):
return self.name == other.name and self.age == other.age
return False
'dataclass' 装饰器自动为类生成了' init ', ' repr ', ' eq ' 等方法,省去了手动编写这些方法的步骤。
使用'dataclass' 时,可以直接创建实例,就像使用普通类一样:
p = Person('Alice', 25)
print(p) # 输出: Person(name='Alice', age=25)
'dataclass' 还支持一些参数,用于自定义生成的方法。例如,可以通过'frozen' 参数指定生成的类是否是不可变的:
@dataclass(frozen=True)
class Person:
name: str
age: int
在上述示例中,生成的'Person' 类将是不可变的,即不能修改实例的属性值。
原文地址: http://www.cveoy.top/t/topic/qu9Q 著作权归作者所有。请勿转载和采集!