@abstractmethod
def get_all(self):
raise NotImplementedError
а зачем в абстрактном методе что-то рейзить? разве там не многоточие просто ставится?
Ну, абстрактный метод таки может быть вызван из наследника. Это может быть нежелательно.
чтобы если кто-то вдруг решить вызвать через super() вместо нормальной реализации, у него не получилось
Вот это откровенно говоря странное поведение, учитывая возможности множественного наследования.
к слову я лично негативно отношусь к эллипсису как к замене pass в коде
почему? если дефолтной реализации нет, значит нет и нечег оsuper дергать
Вроде как считается, что может быть осмысленная реализация, которой просто всегда недостаточно для потомков.
Потому что ты не всегда можешь знать дернешь ли ты дефолтную реализацию или нет.
Мне понравилось его использовать, чтобы разделять методы, которые ничего не делают и абстрактные методы
так если нет дефолтной реализации
так у тебя супер может дернуть не абстрактный метод, а конкретный у соседнего класса.
родительский же
Обсуждают сегодня