Python
ООП, classmethod, staticmethod
Основные определения
Объектно-ориентированное программирование (ООП) — парадигма
программирования, основанная на представлении программы в виде
совокупности объектов, каждый из которых является экземпляром
определённого класса, а классы образуют иерархию наследования.
Python соответствует принципам объектно-ориентированного
программирования. В python всё является объектами - и строки, и списки,
и словари, и всё остальное.
Но возможности ООП в python этим не ограничены. Программист может
написать свой тип данных (класс), определить в нём свои методы.
Основные определения
• Класс - это некий шаблон для создания
объектов, описывает свойства и поведение,
которыми могут обладать объекты
• Свойства класса (поля) - это характеристики
объекта класса (например: цвет, длина)
• Методы класса - это функции, с помощью
которых можно оперировать данными класса
(например: посчитать производную)
• Объект (экземпляр класса) — некоторая
сущность, реализация какого-то класса,
обладающая уже определённым состоянием и
поведением
ВАЖНО! Название классов начинаются с заглавной
буквы. Например: MyClass, CatDog
Принципы ООП. Абстракция
Абстракция — это выделение основных,
наиболее значимых характеристик объекта
и игнорирование второстепенных
По сути мы описываем наш объект при
помощи набора свойств (характеристик) и
действий (методов), тем самым производя
определенную абстракцию нашего объекта.
Принципы ООП. Инкапсуляция
Инкапсуляция – это свойство системы,
позволяющее объединить данные и методы,
работающие с ними в классе и скрыть детали
реализации от пользователя.
Инкапсуляция в Python работает лишь на
уровне соглашения между программистами о
том, какие атрибуты являются
общедоступными, а какие — внутренними.
Есть возможность инкапсулировать как
свойства класса, так и методы.
Принципы ООП. Наследование
Наследование – это свойство системы,
позволяющее описать новый класс на основе уже
существующего с частично или полностью
заимствующейся функциональностью.
Класс, от которого производится наследование,
называется базовым или родительским.
Наследованный класс – потомком, наследником
или производным классом.
Что характерно для класса потомка:
• Наследует свойства и методы родителя
• Может дополняться собственными свойствами
и методами
• Может переопределять унаследованные
свойства и методы
Принципы ООП. Полиморфизм
Полиморфизм — использование
единственной сущности (метода,
оператора или объекта) для
представления различных типов в
различных сценариях использования.
Полиморфизм позволяет перегружать
(заменять) одноименные методы
родительского класса в классах-
потомках.