我们知道Python语法本身并不支持函数重载,龟叔2005年写的一篇博文中说到:函数重载太高级了以至于他不会用到。...: float):
print(f'a={a}, b')
调用第一个:
f(1)
打印:
TypeError: f() missing 1 required positional argument...,2个str
@multimethod(int, int)
def foo(a, b):
# 对整型a和b处理
print(f"a={a}, b={b}")
@multimethod(float..., float)
def foo(a, b):
# 对浮点型a和b处理
print(f"a={a}, b={b}")
@multimethod(str, str)
def foo(a,...'>, float'>)
a=2.0, b=1.0
函数名=foo, 参数类型=(str'>, str'>)
a=2.0s, b=1.0s
参考龟叔的这篇博文