/python_oop_course

The repository stores completed assignments for the Python OOP course

Primary LanguagePython

Курс по объектно-ориентированному программированию на Python

Содержание курса

1. Первые шаги в ООП

Введение в концепцию объектно-ориентированного программирования. Понятие класса, его объектов, атрибуты класса, инициализация объектов.

  1. Как правильно выполнять задания курса
  2. Концепция ООП простыми словами
  3. Классы и объекты. Атрибуты классов и объектов
  4. Методы классов. Параметр self
  5. Инициализатор __init__ и финализатор __del__
  6. Магический метод __new__. Пример паттерна Singleton
  7. Методы класса (classmethod) и статические методы (staticmethod)
  8. Испытание свойствами и методами

2. Режимы доступа, свойства и дескрипторы

Узнал о режимах доступа (public, private, protected) к атрибутам классов. Познакомился с идеей сеттеров и геттеров, а также их развитием - с объектами-свойствами и дескрипторами.

  1. Режимы доступа public, private, protected. Сеттеры и геттеры
  2. Свойства property. Декоратор @property
  3. Дескрипторы (data descriptor и non-data descriptor)

3. Магические методы классов

Узнал , что каждый класс в Python содержит набор предопределенных магических методов, через которые можно тонко настраивать работу с классами.

  1. Методы __setattr__, __getattribute__, __getattr__ и __delattr__
  2. Метод __call__. Функторы и классы-декораторы
  3. Методы __str__, __repr__, __len__, __abs__
  4. Методы __add__, __sub__, __mul__, __truediv__
  5. Сравнения __eq__, __ne__, __lt__, __gt__ и другие
  6. Методы __eq__ и __hash__
  7. Метод __bool__
  8. Методы __getitem__, __setitem__ и __delitem__
  9. Методы __iter__ и __next__
  10. Испытание магией

4. Наследование и полиморфизм

Узнал, как в Python реализуются две важные концепции в ООП - наследование и полиморфизм.

  1. Наследование в объектно-ориентированном программировании
  2. Функция issubclass(). Наследование от встроенных типов
  3. Наследование. Функция super() и делегирование
  4. Наследование. Атрибуты private и protected
  5. Полиморфизм и абстрактные методы
  6. Множественное наследование
  7. Коллекция __slots__
  8. Испытание "Бремя наследия"

5. Исключения и менеджеры контекста

Познакомился с исключениями (try/except/else/finally) и менеджерами контекста (with).

  1. Введение в обработку исключений. Блоки try / except
  2. Обработка исключений. Блоки finally и else
  3. Распространение исключений (propagation exceptions)
  4. Инструкция raise и пользовательские исключения
  5. Менеджеры контекстов. Оператор with
  6. Посвящение в объектно-ориентированное программирование