Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: abstract, class

Что произойдет, если не реализовать абстрактный метод в наследнике?

Вопрос проверяет понимание механизма абстрактных классов и того, как Python запрещает создание некорректных наследников.

Короткий ответ

Если наследник не реализует все абстрактные методы, он сам остается абстрактным классом.
Экземпляр такого класса создать нельзя.
При попытке создать объект Python выбросит TypeError.
Это защищает код от использования неполной или некорректной реализации интерфейса.

Длинный ответ

Абстрактные классы в Python используются как контракты, которые наследники обязаны выполнить.

Определение

Абстрактный метод — это метод, объявленный в базовом классе, который обязан быть реализован в наследнике.

В Python абстрактные классы обычно создаются через модуль abc.

Базовый пример

from abc import ABC, abstractmethod

class Storage(ABC):
    @abstractmethod
    def save(self, data):
        pass

Здесь save — обязательный метод.

Наследник без реализации

class FileStorage(Storage):
    pass

FileStorage()  # TypeError

Что произойдет

  1. Класс FileStorage существует

  2. Но он считается абстрактным

  3. Попытка создать экземпляр приводит к:

    TypeError: Can't instantiate abstract class FileStorage
    

Корректный наследник

class FileStorage(Storage):
    def save(self, data):
        print("saved")

fs = FileStorage()  # OK

Зачем это нужно на практике

  • Гарантировать, что все реализации поддерживают нужный интерфейс

  • Избежать ошибок времени выполнения из-за “забытых” методов

  • Чётко зафиксировать ожидания от наследников

Вывод

Если абстрактный метод не реализован, класс нельзя использовать как полноценную реализацию — Python остановит это на этапе создания объекта.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Python

    Python

Ключевые слова

#abstract

#class

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.