Урок 73. Практикум 18

📁 Блок: Python Fundamentals / Практикум ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#class #super #isinstance #raise #close #hasattr #def #return #if #print #not #len #append #sum #is #for #in #else #type #elif #and #try #except #as #id

⚡ Кратко: суть урока

Практикум 18 — две задачи на наследование и миксины: система кассовых чеков и система уведомлений.

  • ReceiptSaleReceipt / ReturnReceipt: наследование и валидация суммы.
  • Shift управляет списком чеков, статусом, возвратами и подсчётом по типам.
  • Миксины уведомлений: EmailNotifyMixin, SmsNotifyMixin, PushNotifyMixin.
  • Courier и Admin — пользователи с разным набором миксинов.

Что запомнить: наследование выделяет общее, миксины добавляют поведение, isinstance помогает фильтровать объекты.

Частая ошибка: забыть вызвать super().__init__() в наследнике и потерять базовые поля.

О чём этот урок

Это восемнадцатый практикум курса. Все задания посвящены закреплению тем наследования и множественного наследования. Первая задача — моделирование кассовых чеков и смен с помощью классов Receipt, SaleReceipt, ReturnReceipt и Shift. Вторая задача — система уведомлений на миксинах.

Что повторим и закрепим

  • Наследование полей и методов от базового класса.
  • Переопределение __init__ и __str__.
  • Валидация данных и генерация ValueError.
  • Фильтрация объектов по типу через isinstance.
  • Миксины для добавления поведения.
  • Использование hasattr для проверки обязательных полей.
  • Современные практики: type hints, guard clauses, f-strings.

📚 Что повторить перед изучением

🎯 Что изучать дальше