我的应用程序中有一个要求,我需要调用一个具有相同名称,但具有不同数字参数和实现的方法。另外,我不想添加任何条件语句来检查收到的参数并执行所需的实现。如果使用Java,C ++等语言,则可能会导致函数重载,这很简单。
我研究了像https://github.com/mrocklin/multipledispatch/blob/master/multipledispatch/这样的python软件包,它们提供了这种支持,但是对于应用程序而言,依赖于此类外部库似乎是一个开销。
以下是我要实现的目标:
def foo(x):
do_something
def foo(x,y):
do_something_else
不执行以下操作:
def foo(x, y=None):
if not y:
do_something
else:
do_something_else