Найти в Дзене
ООП

ООП

Серия уроков посвященных объектно-ориентированному программированию
подборка · 6 материалов
3 года назад
Метаклассы в Python
В этом руководстве мы расскажем, что такое метаклассы в Python, зачем они нужны и как их создавать. Метакласс в Python — это класс классов, определяющий поведение класса. То есть класс сам по себе является экземпляром метакласса. Класс определяет поведение экземпляров этого класса. Чтобы хорошо понимать метаклассы, необходимо иметь предыдущий опыт работы с классами в Python. Поэтому, прежде чем углубиться в метаклассы, давайте рассмотрим несколько основных концепций. У нас уже была статья об абстрактных классах в python...
4 года назад
Практическая работа с методами класса, экземпляра и статическими методами. Часть 2 из 2
В прошлой части мы с вами разобрались, в чем разница между методами класса, экземпляра и статическими методами. Сегодня попрактикуемся на примере с пиццей. Почему бы и нет) Итак, в своих примерах я буду исходить из элементарного класса Pizza: Фабрики аппетитной пиццы с @classmethod Если вы сталкивались с пиццей в реальном мире, то вы знаете, что существует много видов аппетитной пиццы:  Pizza([ 'моцарелла', 'помидоры' ]) Pizza(['моцарелла', 'помидоры', 'ветчина', 'грибы'])  Pizza([ 'моцарелла']...
307 читали · 4 года назад
Разбираемся с методами экземпляра, класса и статическими методами в Python. Часть 1 из 2
В этой статье вы увидите, что именно в Python стоит за методами класса (class methods), статическими методами (static methods) и обычными методами экземпляра (instance methods). Материал большой, поэтому я разделил на две части. Различие в написании и определении методов Если вы разовьете интуитивное понимание их различий, то сможете писать объектно-ориентированный программный код Python, который яснее сообщает свой замысел и в конечном счете будет удобнее в сопровождении. Давайте начнем с написания...
105 читали · 4 года назад
Переменные класса против переменных экземпляра. ООП в Python
Разбираемся в разнице Помимо проведения различия между методами класса и методами экземпляра, объектная модель Python также приводит различие между переменными класса и переменными экземпляра. Это различие имеет большое значение. Мне, как начинающему разработчику на Python, оно также доставляло немало хлопот. В течение длительного времени я не могу найти время, чтобы разобраться в этих понятиях с самых азов. Поэтому мои первые эксперименты с ООП были пронизаны удивительными линиями поведения и странными ошибками...
130 читали · 4 года назад
Что такое абстрактные классы? ООП в Python
Абстрактные классы (АК), иногда также называемые абстрактными базовыми классами, гарантируют, что производные классы реализуют те или иные методы базового класса. В этой статье вы узнаете о преимуществах абстрактных классов и о том, как их определять при помощи встроенного метода abc. Итак, в чем же прелесть абстрактных классов? Не так давно у меня на работе был спор о том, какой шаблон использовать для реализации удобной в сопровождении иерархии классов в Python. У нас был класс BaseService, который определял общий интерфейс и несколько конкретных реализаций...
4 года назад
6 рекомендаций по определению метода __init__ в Python
Основным краеугольным камнем Python как объектно-ориентированного языка программирования является определение связанных классов для управления и обработки данных. Когда мы создаем класс, первым методом, который определяем является метод инициализации __init__. Если вы примените следующие рекомендации, то тот, кто будет читать ваш код, лучше поймет механику работы всех объектов экземпляра класса. В этой статье я хочу рассказать вам о рекомендациях по определению метода __init__. 1. Располагайте его...