Java Python中具有两个以上函数的方法重载
在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
有什么帮助吗?您可以使用相同的函数来执行此操作,但通过参数的数量,您可以决定要执行的操作,如下所示
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"