from functools import singledispatch @singledispatch def fmt(x): return f'obj:{x}' @fmt.register def _(x: int): return f'int:{x}' @fmt.register def _(x: list): return f'list:{x}' print(fmt(True))