Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> ВИДЕОКУРС Python Разработчик

Best Practice по решению прикладных задач и освоению инструментов, применяемых при разработке, веб-приложений.

>> ОНЛАЙН ТЕСТ Сможешь обучить робота?

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

abstract method python

Абстрактные методы в Python

Абстрактные методы содержат только определение метода без реализации. Предполагается, что класс-потомок должен переопределить метод и реализовать его функциональность. Чтобы такое предположение сделать более очевидным, часто внутри абстрактного метода возбуждают исключение.

Абстрактные методы

class Class1(object):
    def test(self, x):     # Абстрактный метод
        # Возбуждаем исключение с помощью raise
        raise NotImplementedError("Необходимо переопределить метод")
class Class2(Class1):      # Наследуем абстрактный метод
    def test(self, x):     # Переопределяем метод
        print x
class Class3(Class1):      # Класс не переопределяет метод
    pass
c2 = Class2()
c2.test(50)                # Выведет: 50
c3 = Class3()
try:                       # Перехватываем исключения
    c3.test(50)            # Ошибка. Метод test() не переопределен
except NotImplementedError, msg:
    print msg              # Выведет: Необходимо переопределить метод
Далее...