TGViewer
Python Learning Python Learning @python_per_month · 28.2K subscribers
Post #3552 4.31K
❓ Вопрос на собеседовании

Что такое 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
👩‍💻
  • 👍 6
  • 🔥 1
More from @python_per_month
  1. Sep 14, 2026➡️ Memray — профилирование памяти для Python Memray — это современный инструмент для профи…
  2. Aug 17, 2026Срезы Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовател…
  3. Aug 11, 2026Нейросеть, LLM (большие языковые модели) и ИИ-агент Эти слова в разговорах часто использую…
  4. Jul 23, 2026👩‍💻 Задача по Python Создайте функцию find_longest_substring для поиска самой длинной по…
  5. Jul 13, 2026🔥 Три разных человека. Три разных проекта. Один и тот же подход. — Юра взял «скучную» ниш…
  6. Jul 11, 2026⚙️ enumerate() Когда тебе нужно итерировать по списку с доступом к индексу элемента, испол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →