170 похожих чатов

В статье на медиум наткнулся на такой код class IRepository(ABC):

@abstractmethod
def get_all(self):
raise NotImplementedError

а зачем в абстрактном методе что-то рейзить? разве там не многоточие просто ставится?

13 ответов

26 просмотров

Ну, абстрактный метод таки может быть вызван из наследника. Это может быть нежелательно.

чтобы если кто-то вдруг решить вызвать через super() вместо нормальной реализации, у него не получилось

Tishka17
чтобы если кто-то вдруг решить вызвать через super...

Вот это откровенно говоря странное поведение, учитывая возможности множественного наследования.

к слову я лично негативно отношусь к эллипсису как к замене pass в коде

Alex
Вот это откровенно говоря странное поведение, учит...

почему? если дефолтной реализации нет, значит нет и нечег оsuper дергать

Alex
Вот это откровенно говоря странное поведение, учит...

Вроде как считается, что может быть осмысленная реализация, которой просто всегда недостаточно для потомков.

Tishka17
почему? если дефолтной реализации нет, значит нет ...

Потому что ты не всегда можешь знать дернешь ли ты дефолтную реализацию или нет.

Alex
к слову я лично негативно отношусь к эллипсису как...

Мне понравилось его использовать, чтобы разделять методы, которые ничего не делают и абстрактные методы

Tishka17
так если нет дефолтной реализации

так у тебя супер может дернуть не абстрактный метод, а конкретный у соседнего класса.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта