Jan 12, 2022
Повторил тему объектно-ориентированного программирования (ООП), в частности следующие блоки и понятия:
- Парадигма АТД. Абстрактные типы данных. Понятие классаКласс - объединение данных и функций их обработки.
Класс — чертёж, на основе которого создаётся некоторый объект.
Важно! Моделировать класс нужно не с помощью атрибутов, а с помощью операций над этой структурой данных. - Понятие экземпляра класса(объекта класса)Служебное слово self, в соответствии с соглашением в Python, определяет ссылку на объект (экземпляр) класса.
Переменная self связывается с объектом класса, к которому применяются методы класса.
Через переменную self можно получить доступ к атрибутам объекта.
Когда методы класса применяются к новому объекту класса, то self связывается с новым объектом.
Через эту переменную осуществляется доступ к атрибутам нового объекта. - Понятие атрибута.
- Методы - операции над классом. При моделировании класса методы первичны, атрибуты вторичны.
- Понятие конструктора - специальный метод, вызываемый при создании экземпляра класса, используется для инициализации значений атрибутов
- Модификаторы доступа (для переменных).Публичный (auto_name),
Защищенный (_auto_year)
Приватный (__auto_model) - Инкапсуляция - механизм сокрытия данных.Одиночное подчёркивание в начале имени атрибута или метода свидетельствует о том, что атрибут или методы не предназначены для использования вне класса. Они доступны по этому имени.
Использование двойного подчёркивания перед именем атрибута и метода делает их недоступными по этому имени. - Наследование. Класс Auto наследует характеристики класса Transport, то есть все его атрибуты и методы
Множественное наследование: несколько дочерних классов у одного родителя, несколько родителей у одного класса - Полиморфизм - способность объекта иметь различную функциональность. Перегрузка методов - возможности метода отражать разную логику выполнения в зависимости от количества и типа передаваемых параметров. Переопределение методов - наличии метода с одинаковым названием для родительского и дочернего классов
Ссылка на базовые задачи по ООП
Ещё ссылки на мой задачи по ООП
По результату прохождения курса Python основы, был реализован проект - Игра Лото. В проекте я применил полученные знания по ООП. Применена концепция наследования.
Ссылка на пример использования концепции полиморфизма (в виде переопределения методов) в функции show_speed.
Ссылка на пример использования инкапсуляции для переменной colors.
Дополнительные материалы:
Объектно-ориентированное Программирование в Python.
Объектно-ориентированное программирование. Классы и объекты.