@Web__Nikita03

Для чего нужны абстрактные классы?

Для чего нужна библиотека abc? Ведь я могу писать в методе, который нужно переопределить, raise NotImplementedError.
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, класс, содержащий абстрактный метод, сам является абстрактным и не должен инстанцироваться. Выбрасывая NotImplementedError вы такого эффекта не добьётесь и можете получить исключение в рантайме, создав по ошибке экземпляр абстрактного класса. Во-вторых, декларативный подход позволяет писать более чистый код, явно передающий намерения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы