Основы ООП в Python
Я решил рассказать вам немного про ООП в python. В этом посте мы познакомимся с основными терминами( в этом посте мы рассмотрим инкапсуляцию и полиморфизм ), понятиями и рассмотрим простые задачи на закрепление.
(Объектно-ориентированное программирование) ООП - совокупность понятий и идей программирования, в рамках которой «во главу угла» ставят понятия объектов и классов.
Класс – это описание еще не созданного объекта.
Объект или экземпляр класса – то, что инициализировано по описанию из класса. Объект имеет описание, структуру и поведение класса.
Инкапсуляция – это объединение данных и функций в единый компонент.
В python можно создать приватные и публичные методы класса. Если мы захотим к объекту применить приватный метод, то программа обматерит нас ошибкой AttributeError.
Полиморфизм является также одним из базовых аспектах ООП, котором очень часто пользуются разработчики. Также полиморфизм позволяет одному коду работать со множеством данных различных типов.
Например есть базовый класс машина, от которого наследуются все остальные модели машин.
Множественное наследование (MRO). Если язык поддерживает множественное наследование, то значит у класса может быть больше одного родителя.
Класс будет инициализироваться от класса Car, потому что он первый родитель, но все методы будут действовать как от класса Car, так и от класса Motorcycle.
Дандеры - двойные символы подчеркивания.( __init__ )
Одинарный символ подчеркивания перед именем метода. Переменная или метод, начинающиеся с одинарного символа подчеркивания, предназначаются для внутреннего пользования.
Символ подчеркивания в конце ставят в том случаем, если переменная с выбранным именем уже существует.
Магические методы.
object.__new__(cls[,...]) - Вызывается при создании нового экземпляра класса. Первый аргумент – класс, объект которого создается. Остальные аргументы передаются в конструктор класса.
object.__call__(self[, args...]) - метод, который выполняется когда объект вызывают как функцию.
А теперь задачка.
Мое решение можете посмотреть ЗДЕСЬ.
Домашние задание:
Добавьте мерседес и ауди.
Сделайте метод, который позволяет посмотреть купленные машины и считает их суммарную стоимость.
Вопрос о роли и месте компар.... объектно-ориентированного программирования в пролетарском кодинге.
Или всё смешалось в доме Облонских и дальше лучше не будет? :-)