Python中的方法重载有两个以上的函数

时间:2014-09-30 14:10:46

标签: java python

在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中获得相同的行为?我知道我可以使用默认值,但是当我想在方法中实现不同的操作时,我遇到了问题。

任何帮助?

1 个答案:

答案 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中,当您定义一个具有多个具有相同名称的函数的类时,最后一个函数将使用相同的名称覆盖以前函数的定义,因为函数和类关联发生得非常晚。