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

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

@abstractmethod
def get_all(self):
raise NotImplementedError

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

13 ответов

6 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Добрый день! Хочу спросить совета. Хочется в скрипт добавить некую конструкцию, что скрипт создал файл, который нужно потом скопировать в определенное место. Нашел такой сп...
Mikhail
3
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Дороу! У кого-нибудь есть в загашнике проверенная функция экранирования, аналог re.escape в Python? Из доки: » Escape all the characters in pattern except ASCII letters and n...
Daniil Smolyakov
9
Карта сайта