Декоратор
@dataclass сам генерирует стандартные методы вроде init, repr и eq на основе атрибутов класса.Пример 👇
# с dataclass
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int
А вот как это выглядело бы без
@dataclass:class Point:
def __init__(self, x: int, y: int):
self.x = x
self.y = y
def __repr__(self):
return f"Point(x={self.x}, y={self.y})"
def __eq__(self, other):
return (self.x, self.y) == (other.x, other.y)
dataclass экономит время и избавляет от шаблонного кода, когда класс просто хранит данные.
👉 @PythonPortal
