Абстрактные классы в Python

  Рет қаралды 2,724

Python Clinic

Python Clinic

Күн бұрын

Разбираемся с тем, как работает abstract base class или abc. Абстрактные классы позволяют в явном виде заставить дочерние классы переопределять поведения родителей, за счёт этого мы можем строить более гибкие иерархии наследования.
Таймкоды:
00:00 - интро
01:06 - интерфейсы
04:17 - абстрактные классы
05:33 - необходимые инструменты
09:16 - расширяем дочерние классы
10:55 - результат
11:59 - аутро

Пікірлер: 21
@biotexcom5464
@biotexcom5464 6 ай бұрын
Не забрасывай канал, у тебя хорошо получается более глубоко обьяснить ООП пайтнона и функциональное программирование чем у 90% питонистов в ютубе
@vladdragunov5526
@vladdragunov5526 Ай бұрын
Учу питон на степике уже год, но часто сюда прихожу за конкретикой, хотел бы, чтобы у меня был такой преподаватель как ты. Ты единственный кто смог доходчиво объяснить мне про рекурсию и многие другие подводные камни. Больше всего мне по душе то, то диктор не торопится,объясняет все размеренно Спасибо огромное! Надеюсь, что в ближайшем будущем попаду на твой стрим)
@pythonclinic
@pythonclinic Ай бұрын
спасибо большое за отзыв)
@genobr
@genobr 2 ай бұрын
Спасибо!
@heybeachMIN
@heybeachMIN 3 ай бұрын
Спасибо, стало намного понятней!
@user-xy5eq1ej2g
@user-xy5eq1ej2g 4 ай бұрын
На достаточно высоком уровне и, в то же время, последовательно и ПОНЯТНО.
@TheVenelo
@TheVenelo 10 ай бұрын
Добрый день) вот все люди делают уроки по ооп на основе собачек и кошечек, но я не могу найти пример/объяснение реального примера классов и из-за этого тяжело понять как применять ооп в реальном проекте. Было бы круто если бы вы сделали такой ролик, спасибо
@pythonclinic
@pythonclinic 10 ай бұрын
принято)
@AntonyKondr
@AntonyKondr 8 ай бұрын
я шахматный движок пишу, сделал абстрактный базовый класс AbcFigure, от него наследовал конкретные фигуры... все типы шахматных фигур хоть и разные, но общие методы и свойства имеют, поэтому и имеет смысл создать базовый класс, чтобы DRY, SOLID... Полиморфизм и L принцип - самые важные в теме ООП я щитаю :)
@steefsteefler5760
@steefsteefler5760 6 ай бұрын
Да, я б тоже хотел новые видео. Не плохо, воообще-то.
@sladge17
@sladge17 11 ай бұрын
Спасибо за видео. Можно ещё в копилку тем добавить видео про wheel. Что это такое, для чего нужно, когда применяется.
@pythonclinic
@pythonclinic 11 ай бұрын
добавил в список)
@xacho86
@xacho86 10 ай бұрын
По идее наследование от ABC излишне, когда достаточно использовать только декоратор abstractmethod. И нужно оно исключительно для наглядности. Никак не могу придумать кейсы, где использование наследования от ABC было бы must have
@pythonclinic
@pythonclinic 10 ай бұрын
Нет, наследование от ABC это не просто наглядность, это инструмент, который приносит ограничение на создание экземпляров класса, это имеет очень большое значение при построении абстрактностей, которые не должны использоваться напрямую и нужны только для наследования
@xacho86
@xacho86 10 ай бұрын
@@pythonclinic , а можно какой-нибудь простенький пример, самостоятельно в голову ничего не приходит ни мне, ни моему помощнику chatgpt:)
@pythonclinic
@pythonclinic 10 ай бұрын
Например, родительский абстрактный класс для обработки медиа, назовём его MediaProcessor, и зададим два (или сколько угодно) абстрактных метода в стиле resize и crop. Сам по себе этот класс не должен использоваться, потому что медиа может быть разное, он только предоставляет нам набор контрактов, которые мы должны реализовать для каждого типа медиа. Например, это будут ImageProcessor и VideoProcessor, которые уже будут реализовывать конкретную логику ресайза и кропа картинок и видео, и их мы и будем использовать напрямую. В любой момент мы можем добавить новый обработчик, например, DocumentProcessor, наследовать его от MediaProcessor и реализовать все контракты, и использовать таким же способом, как и остальные обработчики
@xacho86
@xacho86 10 ай бұрын
@@pythonclinic , так то же самое можно сделать и без наследования от ABC. Достаточно определить декоратором abstractmethod нужные методы: этого достаточно, чтобы нельзя было создать экземпляр класса MediaProcessor. Дальше наследуемся от него и реализовываем эти методы в классах наследниках. Хотелось бы видеть кейс, где без наследования от ABC просто не обойтись.
@xacho86
@xacho86 10 ай бұрын
@@pythonclinic, я понял: надо было код написать сразу
@drrros
@drrros 10 ай бұрын
А про slots уже было?
@pythonclinic
@pythonclinic 10 ай бұрын
ещё нет
@user-bg3oc9to4n
@user-bg3oc9to4n 9 ай бұрын
Спасибо!
Методы классов в Python
10:51
Python Clinic
Рет қаралды 1,1 М.
Асинхронность в python
26:23
Python Clinic
Рет қаралды 2,3 М.
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 20 МЛН
ELE QUEBROU A TAÇA DE FUTEBOL
00:45
Matheus Kriwat
Рет қаралды 24 МЛН
Заметили?
00:11
Double Bubble
Рет қаралды 2,5 МЛН
UFC 302 : Махачев VS Порье
02:54
Setanta Sports UFC
Рет қаралды 929 М.
Принципы SOLID / С Примерами На Python
12:36
PyLounge - программирование на Python и всё о IT
Рет қаралды 12 М.
Javascript Dərsləri. Destrukturizasiya 1-ci hissə
12:57
Elchin Imanov
Рет қаралды 184
Паттерн Singleton (Одиночка) в Python
36:55
Python Russian
Рет қаралды 10 М.
ООП 22 Полиморфизм в Python. Polymorphism python
11:10
egoroff_channel
Рет қаралды 32 М.
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 20 МЛН