Python Glossary English

Python 3.8+functoolsфункция

functools.singledispatchmethod

обобщённые функции

Декоратор метода с одиночной диспетчеризацией: выбирает реализацию по типу первого аргумента (после self).

Синтаксис

@functools.singledispatchmethod

Появился в Python 3.8; диспетчеризация идёт по типу первого аргумента после self, и тип обычно берут из его аннотации. Регистрируемые реализации принято называть _ — имя роли не играет, значение имеет только register; а если складывать декоратор с classmethod или staticmethod, singledispatchmethod должен быть самым внешним, иначе атрибут register до него не доберётся.

Примеры

from functools import singledispatchmethod
class C:
    @singledispatchmethod
    def f(self, x): return 'other'
    @f.register
    def _(self, x: int): return 'int'
print(C().f(5))   # → int

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности