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

Class MessageHandler: @staticmethod def

handle(msg: GameMessageAnnouncementMsg):
print(msg)

@staticmethod
def handle(msg: GameMessagePingMsg):
pass

Почему так нельзя перегрузить? А как можно?

11 ответов

44 просмотра

Предполагаю что в первом случае ты выполняешь принт, а во втором-ничего

class MessageHandler: @staticmethod def handle(msg): if isinstance(msg, GameMessageAnnouncementMsg): MessageHandler.handle_announcement(msg) elif isinstance(msg, GameMessagePingMsg): MessageHandler.handle_ping(msg) @staticmethod def handle_announcement(msg: GameMessageAnnouncementMsg): print(msg) @staticmethod def handle_ping(msg: GameMessagePingMsg): pass

Дурачок-Глупый Автор вопроса
a?
class MessageHandler: @staticmethod def ha...

вот как-то не очень хочется пачку elif У меня штук 10 типов сообщений и это будет смотрется ужасно

Дурачок-Глупый Автор вопроса
a?
class MessageHandler: @staticmethod def ha...

@Tishka17 неужели никак иначе?

Дурачок-Глупый Автор вопроса

Возможно ты ищешь это https://docs.python.org/3/library/functools.html#functools.singledispatch

Ну и typing.overload есть

Дурачок-Глупый Автор вопроса
Yegor 𓃰
Ну и typing.overload есть

вау круто А оверлоад получается и не нужен особо

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
4
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта