Абстрактные классы
from abc import ABCMeta
class AbstractClass(object):
# атрибут метакласса всегда должен
# быть установлен как переменная класса
__metaclass__ = ABCMeta
# декоратор abstractmethod регистрирует этот метод как undefined
@abstractmethod
def virtual_method_subclasses_must_define(self):
# Можно оставить полностью пустым
# или предоставить базовую реализацию
# Обратите внимание, что обычно пустая интерпретация
# неявно возвращает `None`, но при регистрации
# это поведение больше не применяется.
123456789101112131415class MontyPython:
def joke(self):
raise NotImplementedError()
def punchline(self):
raise NotImplementedError()
class ArgumentClinic(MontyPython):
def joke(self):
return "Hahahahahah"
12345678910Last updated