在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/

10-12 03:07
查看更多