在Java中,我能够在类中进行方法重载,如下所示(伪代码):
public class Test
private double result;
Test(){result=0;}
public double func(int a, int b, int c)
{
result=a+b+c;
}
public double func(int a, int b)
{
result=a*b;
}
public double func(int a)
{
result=Math.pow(a,2);
}
如何在Python中获得相同的行为?我知道我可以使用默认值,但是当我想在方法中实现不同的操作时,我遇到了问题。
任何帮助?
答案 0 :(得分:1)
您可以使用相同的功能执行此操作,但通过参数数量,您可以决定要执行的操作,例如
class Test:
def func(*args):
if len(args) == 1:
return args[0] * args[0]
elif len(args) == 2:
return args[1] * args[0]
elif len(args) == 3:
return sum(args)
else:
raise "Unexpected number of arguments"
在Python中,当您定义一个具有多个具有相同名称的函数的类时,最后一个函数将使用相同的名称覆盖以前函数的定义,因为函数和类关联发生得非常晚。