TGViewer
Python Academy Python Academy @python_academy · 44.1K subscribers
Post #931 22.1K
Абстрактные классы и методы

В абстрактном классе обычно реализуется общая часть нескольких сущностей или другими словами – абстрактная сущность.

Абстрактный метод – это метод, который не имеет своей реализации в базовом классе, и он должен быть реализован в классе-наследнике. 

Для того, чтобы создать абстрактный класс с абстрактными методами, надо импортировать вспомогательные метакласс ABCMeta и декоратор abstractmethod из модуля abc.

Если мы отнаследуем новый класс от абстрактного класса, не переопределив абстрактные методы, в данном случае method, и попробуем создать экземпляр, то получим исключение TypeError.

Для того, чтобы код заработал корректно, нам необходимо переопределить все абстрактные методы. То есть по сути еще раз просто написать метод, но уже в новом классе.

UPD. В коде опечатка, в классе GoodExample метод должен называться method, а не function.

#классы #метаклассы #abc
  • 👍 35
  • 👎 5
More from @python_academy
  1. Oct 6, 2026Генерируем QR-код Простой, но удобный и полезный пакет для создания QR-кодов. Для отрисовк…
  2. Oct 5, 2026Корутины (Coroutines) В PEP 342 были представлены корутины, которые стали некой противопол…
  3. Oct 4, 2026Порядок разрешения методов В Python существует так называемый Method Resolution Order (MRO…
  4. Oct 3, 2026Полезные функции модуля itertools Модуль itertools - инструмент в Python для работы с итер…
  5. Oct 2, 2026Scrapy: Мощный инструмент для веб-скрапинга на Python Scrapy - это высокоэффективная библи…
  6. Oct 1, 2026⁠Упаковка параметров с помощью urlencode Довольно часто приходится работать с разнообразны…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →