Comments 4
А можно, пожалуйста, поподробнее про overload? У меня конструкция
всегда выводит 'all other'. Если её убрать, то возникает NotImplementedError: You should not call an overloaded function. A series of overload-decorated functions outside a stub module should always be followed by an implementation that is not overload-ed.
@overload
def a(b: None) -> None: return None
@overload
def a(b: int) -> str: return 'int'
@overload
def a(b: float) -> str: return 'float'
def a(b) -> str: return 'all other'
print(a(1.0))
всегда выводит 'all other'. Если её убрать, то возникает NotImplementedError: You should not call an overloaded function. A series of overload-decorated functions outside a stub module should always be followed by an implementation that is not overload-ed.
0
В качестве альтернативы if
можно посмотреть на functools.singledispatch.
0
Sign up to leave a comment.
Подборка @pythonetc, сентябрь 2018