在这篇文章中,Guido van Rossum 说这种 Python 中的多方法实现:
def foo(a, b):
if isinstance(a, int) and isinstance(b, int):
...code for two ints...
elif isinstance(a, float) and isinstance(b, float):
...code for two floats...
elif isinstance(a, str) and isinstance(b, str):
...code for two strings...
else:
raise TypeError("unsupported argument types (%s, %s)" % (type(a), type(b)))
是“乏味”和“不是很OO”。然后,他描述了如何使用装饰器来实现多方法,我认为这些方法对于那些没有相当深入的 Python 知识的人来说是无法访问的。
我的问题:我需要编写一个多方法,关于上面的代码实际上“不是 OO”是什么?
更新:根据 Thomas Orozco 的回答,我现在意识到我实际上根本“不需要”编写多方法。