Привет! Мы — команда Яндекс Практикума и эксперты курса «Python-разработчик». В этой статье собрали полезные ресурсы, которые помогут освоить принципы объектно-ориентированного программирования (ООП) и научиться применять их на практике.
В программировании есть несколько основных парадигм — подходов, которые определяют, как программисты структурируют и организуют свой код. Одним из наиболее популярных подходов сейчас является объектно-ориентированное программирование (ООП), где код организуется вокруг объектов и классов.
Основные элементы ООП — классы, объекты, методы и атрибуты. Исследователи могут выделять разное количество принципов, но все соглашаются, что ООП строится на трёх основополагающих: наследование, инкапсуляция и полиморфизм. Четвёртым выделяют абстракцию.
Благодаря этим принципам код становится более структурированным, гибким и удобным для масштабирования. В большой команде проще работать с ООП: за счёт модульности кода каждый отдельный программист может работать над своим классом или набором классов, не мешая коллегам.
Чтобы глубже разобраться в элементах и принципах ООП, предлагаем подборку полезных ресурсов.
Официальная документация Python

Для любого разработчика главным авторитетом должна быть документация, поэтому начнём нашу подборку с неё. В ней подробно разобраны классы, объекты и их взаимодействие. Если стиль документации кажется для вас слишком сложным и непонятным, переходите к следующему пункту.
«Объектно-ориентированное программирование в размышлениях и опытах хоккеиста Степана Осечкина», блог Практикума

В этой статье эксперт Практикума раскрывает основные принципы ООП на Python, объясняя их на примерах из мира хоккея. Аналогии простые, совсем не обязательно быть хоккейным фанатом. Подойдет тем, кто только начинает знакомство с объектно-ориентированным подходом и хочет быстро разобраться в базовых концепциях.
Refactoring Guru

Ресурс посвящён рефакторингу, паттернам проектирования, принципам SOLID и другим важным темам из мира программирования. Главная цель — показать общую картину того, как все эти темы пересекаются, как работают вместе и насколько они до сих пор актуальны.
Сайт предлагает подробные объяснения паттернов проектирования, а также примеры их реализации на Python. Если вы хотите научиться писать структурированный код и применять лучшие практики, этот сайт станет отличным помощником. Ссылка может не работать с российского IP.
«Python ООП», ProProProgs

Глубокий и качественный учебник по ООП в Python с последовательным разбором ключевых тем. Внутри представлены статьи и видеоуроки как о базовых концепциях (создание классов, объектов, работа с методами и атрибутами), так и о более продвинутых темах, таких как магические методы, перегрузка операторов, наследование, инкапсуляция и полиморфизм.
Python Classes and Objects, W3Schools

Этот урок интерактивного учебника по Python объясняет, что такое классы и объекты, как их создавать и использовать. В нём есть примеры кода, которые показывают основные моменты: создание классов, инициализацию объектов, работу с методами и атрибутами.
Материал подаётся простым языком, а встроенный тренажер позволяет сразу проверить свои знания. В следующих уроках разбираются наследование и полиморфизм. Чтобы быстро найти нужную тему, используйте меню слева.
Python OOPs Concepts, GeeksforGeeks

В разделе Python OOPs Concepts подробно разбираются ключевые концепции ООП: классы, объекты, инкапсуляция, наследование, полиморфизм и абстракция. Каждый урок содержит понятные объяснения и примеры кода, которые можно редактировать прямо на сайте. В конце каждой статьи можно найти материалы по связанным темам.
Вы можете изучать уроки последовательно, начиная с первого, или сразу перейти к интересующей вас теме. Это можно сделать на странице с содержанием курса: список тем, посвящённых ООП, находится в четвертом разделе.
«ООП в Python», Your To Do

Статья рассматривает основные концепции ООП в Python: классы и объекты, наследование, инкапсуляцию, полиморфизм, композицию и магические методы. Всё с примерами кода и объяснениями. Также в статье объясняется значение ООП в разработке на Python.
Python Practice, Codewars

Теория — это хорошо, но без практики невозможно по-настоящему овладеть ООП. Отличный способ закрепить знания — решать задачи на Codewars — платформе для тренировок по программированию. Там вы найдете множество задач разного уровня сложности, которые помогут лучше понять работу с классами, методами и принципами ООП в различных сценариях.
Источник: https://habr.com/ru/companies/yandex_praktikum/articles/895032/