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

Что значит разными методами? Ещё раз. Если у нас есть

класс, в котором реализован `def f(self, a: float, b: float) -> float: ..., то он реализует сразу два интерфейса: def f(self, a: float, b: float) -> float: ... и def f(self, a: int, b: int) -> float: ...`, потому что мы можем потомка отдать вместо родительского класса.
На самом деле больше, всякие bool и другие наследники float тоже реализованы, плюс их комбинации.

16 ответов

20 просмотров

Ну не совсем так

evle- Автор вопроса
evle
Что упустил?

/ и * скорее

evle- Автор вопроса
Tishka17
/ и * скорее

Я не планировал в positional/keyword уходить, это вообще отдельная фигня будет.

evle- Автор вопроса

Что некорректного? Сунуть int вместо float можно? Можно. Соответственно, интерфейс мы реализуем.

evle
Что некорректного? Сунуть int вместо float можно? ...

Сорри, мне показалось ты порядок поменял, не проснулся ещё

по сути же, если я реализую f для float-ов, и эта реализация будет поддерживать int в аргументах, то тогда реализация двух разных сигнатур f в протоколе будет совпадать внутри принимающего класса. так что это всё ещё оставляет 2**n по количеству сигнатур. разве нет?

evle- Автор вопроса
kira wave
по сути же, если я реализую f для float-ов, и эта ...

Так, я запутался где-то в середине предложения. Давай ещё раз. :-)

evle- Автор вопроса

Вот у нас есть два интерфейса, можем их даже записать: class A(Protocol): def f(self, a: int) -> float: ... class B(Protocol): def f(self, a: float) -> float: ... Протоколы — разные. Но при этом класс class C: def f(self, a: float) -> float: ... будет реализовывать сразу оба протокола.

evle
Вот у нас есть два интерфейса, можем их даже запис...

тогда считать нужно не по методам одного протокола, а по методам всех существующих в области прртоколов. число всё равно остаётся то же, 2**n, только n это методы всех этих протоколов уже.

evle- Автор вопроса
kira wave
тогда считать нужно не по методам одного протокола...

Вопрос был в том, сколько протоколов реализует класс. Тут был простейший пример, где класс с одним методом реализует 2 протокола. Это уже больше чем 2**n.

evle
Вопрос был в том, сколько протоколов реализует кла...

в отношении одного протокола да, это больше, чем 2**n, но если считать интерфейсы по всем протоколам, то ровно столько и получается.

evle- Автор вопроса
kira wave
в отношении одного протокола да, это больше, чем 2...

Мы так окончательно в терминах запутаемся... Протокол — это описание интерфейса в виде кода. Что значит "считать интерфейсы по всем протоколам"?

evle
Мы так окончательно в терминах запутаемся... Прото...

ох. блять. я без понятия, честно. может, я имел в виду классы, которые содержат протоколы, и их сами.

evle
Вот у нас есть два интерфейса, можем их даже запис...

Как же красив форматированный код в телеге. 😁

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта