ДЗ 3 — Углубленное ООП и дескрипторы
📚 Лекция: Углубленное ООП
Тема и дедлайн
Тема курса: модуль 4 (углубленное ООП) Дедлайн: 16 апреля 2026, 23:59 Classroom: Принять задание
3.1 — Класс Matrix с магическими методами (2 балла) ★★☆
Реализуй класс Matrix с полным набором поддерживаемых операций.
Обязательные методы:
m = Matrix([[1, 2], [3, 4]])
# Арифметика
m1 + m2 # __add__
m1 - m2 # __sub__
m * 3.0 # __mul__ (скалярное)
m1 @ m2 # __matmul__ (матричное)
# Сравнение и хэширование
m1 == m2 # __eq__
hash(m) # __hash__ (матрица должна быть hashable)
# Представление
repr(m) # __repr__: Matrix([[1, 2], [3, 4]])
str(m) # __str__: читаемое табличное представление
# Форматирование
f"{m:.2f}" # __format__: все элементы с заданной точностью
# Контекстный менеджер для файлов
with Matrix.from_file("matrix.txt") as m:
result = m @ m
Формат файла для from_file: числа через пробел, строки через перенос.
Зачем это
Понимание того, как Python использует dunder-методы для интеграции объектов с синтаксисом языка — ключевая идея всего курса.