Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Python中具有两个以上函数的方法重载_Java_Python - Fatal编程技术网

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

Java Python中具有两个以上函数的方法重载,java,python,Java,Python,在Java中,我能够在类中实现方法重载,如下所示(伪代码): 如何在Python中获得相同的行为?我知道我可以使用默认值,但是当我想在一个方法中实现不同的操作时,我遇到了一个问题 有什么帮助吗?您可以使用相同的函数来执行此操作,但通过参数的数量,您可以决定要执行的操作,如下所示 class Test: def func(*args): if len(args) == 1: return args[0] * args[0] elif l

在Java中,我能够在类中实现方法重载,如下所示(伪代码):

如何在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中,当您使用多个同名函数定义一个类时,最后一个函数将覆盖前面同名函数的定义,因为函数和类的关联发生得很晚。

您看到了吗?谢谢,但是如果len(args)==1,我会得到错误“bool类型的对象没有长度”@Layla函数的定义
func
,应该在
args
之前有
*
。我猜你没有那个。。。
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"