⚡ Кратко
class Child(Parent) — наследование.
super().__init__(...) — вызов родителя.
isinstance(obj, Class) — проверка типа.
hasattr(obj, "attr") — проверка атрибута.
Наследование и полиморфизм
| Конструкция | Описание |
class SaleReceipt(Receipt): | Наследование от базового класса. |
super().__init__(...) | Вызов родительского инициализатора. |
self.__class__.__name__ | Имя класса объекта. |
isinstance(receipt, SaleReceipt) | Проверка принадлежности к типу. |
raise ValueError("...") | Генерация исключения при невалидных данных. |
Методы Shift
| Метод | Назначение |
add_receipt(amount) | Создаёт SaleReceipt, если смена открыта. |
add_return(source_shift, id, amount) | Создаёт ReturnReceipt при валидном исходном чеке. |
close() | Закрывает смену. |
is_closed() | Проверяет статус смены. |
get_total(receipt_type=None) | Сумма всех или по типу. |
list_receipts(receipt_type=None) | Выводит чеки все или по типу. |
Миксины
| Миксин | Требует поле | Метод |
EmailNotifyMixin | email | email_notify(message) |
SmsNotifyMixin | phone | sms_notify(message) |
PushNotifyMixin | — | push_notify(message) |