在没有条件语句的情况下在python中实现重载函数的最佳方法是什么?

时间:2019-08-08 10:46:23

标签: python overloading

我的应用程序中有一个要求,我需要调用一个具有相同名称,但具有不同数字参数和实现的方法。另外,我不想添加任何条件语句来检查收到的参数并执行所需的实现。如果使用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

0 个答案:

没有答案