1.5Kпросмотров
7.7%от подписчиков
11 марта 2026 г.
Score: 1.7K
Популярный способ объявить абстрактный метод в Python — это выбросить исключение NotImplementedError: def human_name(self): raise NotImplementedError Хотя этот подход довольно распространён и даже поддерживается IDE (например, PyCharm считает такие методы абстрактными), у него есть недостаток: ошибка возникает только при вызове метода, а не при создании экземпляра класса. Чтобы избежать этой проблемы, используйте модуль abc: from abc import ABCMeta, abstractmethod class Service(metaclass=ABCMeta): @abstractmethod def human_name(self): pass Также важно помнить, что NotImplemented — это не то же самое, что NotImplementedError. NotImplemented — это специальное значение (как True и False), а не исключение. Оно используется, например, в специальных методах (eq(), add() и др.), чтобы сообщить Python, что операция не реализована для данного типа, и попытаться вызвать альтернативный метод (например, если a.add(b) возвращает NotImplemented, Python попробует вызвать b.radd(a)). 📲 Мы в MAX 👉@BookPython
1.5K
просмотров
1054
символов
Нет
эмодзи
Нет
медиа

Другие посты @BookPython

Все посты канала →