functools.singledispatch

Превращает функцию в обобщённую: реализация выбирается по типу первого аргумента через зарегистрированные варианты.

Сигнатура@functools.singledispatch

singledispatch даёт перегрузку по типу для обычных функций. Базовая функция работает по умолчанию, а конкретные типы регистрируются через @имя.register.

from functools import singledispatch

@singledispatch
def describe(value):
    return f'объект: {value}'

@describe.register
def _(value: int):
    return f'целое: {value}'

@describe.register
def _(value: list):
    return f'список из {len(value)} элементов'

print(describe(42))        # 'целое: 42'
print(describe([1, 2]))    # 'список из 2 элементов'
print(describe('текст'))   # 'объект: текст'
← Все записи: Модули collections и functools
Поддержать проект