在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中获得相同的行为?我知道我可以使用默认值,但是当我想在一个方法中实现不同的操作时遇到了一个问题。
有什么帮助吗?
最佳答案
您可以使用相同的函数执行此操作,但是可以使用多个参数来决定要执行的操作,例如
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中,当您定义一个具有多个具有相同名称的函数的类时,最后一个函数将覆盖具有相同名称的先前函数的定义,因为函数和类的关联发生得很晚。
关于java - Python中具有两个以上函数的方法重载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26122971/