Введение в концепцию объектно-ориентированного программирования. Понятие класса, его объектов, атрибуты класса, инициализация объектов.
- Как правильно выполнять задания курса
- Концепция ООП простыми словами
- Классы и объекты. Атрибуты классов и объектов
- Методы классов. Параметр
self
- Инициализатор
__init__
и финализатор__del__
- Магический метод
__new__
. Пример паттерна Singleton - Методы класса (
classmethod
) и статические методы (staticmethod
) - Испытание свойствами и методами
Узнал о режимах доступа (public
, private
, protected
) к атрибутам классов. Познакомился с идеей сеттеров и геттеров, а также их развитием - с объектами-свойствами и дескрипторами.
- Режимы доступа
public
,private
,protected
. Сеттеры и геттеры - Свойства property. Декоратор
@property
- Дескрипторы (
data descriptor
иnon-data descriptor
)
Узнал , что каждый класс в Python содержит набор предопределенных магических методов, через которые можно тонко настраивать работу с классами.
- Методы
__setattr__
,__getattribute__
,__getattr__
и__delattr__
- Метод
__call__
. Функторы и классы-декораторы - Методы
__str__
,__repr__
,__len__
,__abs__
- Методы
__add__
,__sub__
,__mul__
,__truediv__
- Сравнения
__eq__
,__ne__
,__lt__
,__gt__
и другие - Методы
__eq__
и__hash__
- Метод
__bool__
- Методы
__getitem__
,__setitem__
и__delitem__
- Методы
__iter__
и__next__
- Испытание магией
Узнал, как в Python реализуются две важные концепции в ООП - наследование и полиморфизм.
- Наследование в объектно-ориентированном программировании
- Функция
issubclass()
. Наследование от встроенных типов - Наследование. Функция
super()
и делегирование - Наследование. Атрибуты
private
иprotected
- Полиморфизм и абстрактные методы
- Множественное наследование
- Коллекция
__slots__
- Испытание "Бремя наследия"
Познакомился с исключениями (try/except/else/finally
) и менеджерами контекста (with
).
- Введение в обработку исключений. Блоки
try
/except
- Обработка исключений. Блоки
finally
иelse
- Распространение исключений (propagation exceptions)
- Инструкция raise и пользовательские исключения
- Менеджеры контекстов. Оператор
with
- Посвящение в объектно-ориентированное программирование