Загружаем изображение…

Знаете, что Python умеет делать перегрузку функций по типу аргумента без if/elif?



Обычно ветвление по типам быстро превращается в нечитаемый код:
if isinstance(x, int): ...
elif isinstance(x, str): ...


singledispatch позволяет зарегистрировать разные реализации функции для разных типов:
@process.register(int)
def _(x): return x * 2


или:
@process.register(str)
def _(x): return x.upper()


Теперь одна и та же функция ведёт себя по-разному в зависимости от типа входа:
process(10), process("hi")

Это используется в сериализации, обработке событий, AST, CLI, плагинах и системах с расширяемой логикой.

singledispatch — это хороший способ избавиться от isinstance-цепочек и перейти к расширяемой архитектуре без переписывания кода.

Python Ready | #совет
Просмотры: 198
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти