наглядный пример: class HttpMethod(ABC): @property @abstractmethod def type(self): pass @abstractmethod def do(self, ...): pass class GetMethod(HttpMethod, ABC): @property def type(self): return "GET"
зачем в GetMethod еще раз наследовать ABC?
Да. Только ты абстрактметод забыл внизу. А так, да, вполне наглядно)
Ну эт ж еще абстракция, нет?)
ну вообще ABC это просто удобный способ определить метакласс ABCMeta.
Согласен. Так вроде и было, до 3 питона)
йеп, не нужно. чтобы указать, что GetMethod всё ещё абстрактный. afaik, всякие IDE в роде пайчарм будут подсвечивать предупреждения, мол класс не имплементит все методы. это один способов показать, чтт это ещё один интерфейс. все мы знаем, что это всё сахарок, который не очень то и нужен
Ну тк метод с декоратором @abstractmethod и так будет абстрактным, тк у GetMethod, метакласс - тот же ABCMeta)
Обсуждают сегодня