Что такое
dataclass в Python, как работает параметр init=False и зачем он нужен?Ответ ⬇️
dataclass — это декоратор из модуля dataclasses, который упрощает создание классов для хранения данных, автоматически генерируя методы, такие как __init__, __repr__, и __eq__. Параметр init=False позволяет исключить атрибут из автоматически сгенерированного конструктора __init__. Это полезно для атрибутов, которые не должны передаваться при создании экземпляра, например, для вычисляемых значений или внутренних данных.
Пример использования ⚙️
from dataclasses import dataclass, field
@dataclass
class Product:
name: str
price: float
discount: float = field(init=False) # Исключаем из __init__
def __post_init__(self):
self.discount = self.price * 0.1 # Вычисляем скидку после инициализации
# Создание экземпляра
item = Product(name="Laptop", price=1000)
print(item) # Product(name='Laptop', price=1000, discount=100.0)
Python Learning 👩💻