Я тестирую одиночный пакет Python: https://docs.python.org/3/library/functools.html?highlight=singledispatch#functools.singledispatch
Блок A должен работать как Блок B согласно документу. Но, как вы можете видеть на выходе, только Блок B работает соответственно.
В чем здесь проблема ?? Спасибо.
from functools import singledispatch
# Block A
@singledispatch
def divider(a, b=1):
print(a, b)
@divider.register
def _(a: int, b=1):
print(a/b)
@divider.register
def _(a: str, b=1):
print(a[:len(a)//b])
divider(25, 2)
divider('single dispatch practice', 2)
# Block B
@singledispatch
def div(a, b=1):
print(a, b)
@div.register(int)
def _(a: int, b=1):
print(a/b)
@div.register(str)
def _(a: str, b=1):
print(a[:len(a)//b])
div(25 , 2)
div('single dispatch practice', 2)
Выход:
25 2
single dispatch practice 2
12.5
single dispa