Python __init __ /通用函数内联等于参数:

时间:2012-04-17 06:39:51

标签: python oop

我的任务是将一些Python代码转换为Java。我有一些Python的经验,但我不熟悉它的一些功能。

我看到一个__init__方法,我理解它本质上是一个构造函数。

我希望看到这样的论点:

def __init__(self,derp1, derp2, derp3):

但是在代码的一部分中,我看到了:

def __init__(self,derp1=0, derp2=0, derp3=0):

现在,对我而言,看起来这是某种条件构造函数,特别是在传递(self,0,0,0)时使用。这不应该是这种情况,因为没有替代构造函数。

它也不应该是内联赋值,因为它没有意义。

我试过谷歌搜索这意味着什么,但我没有太多运气。

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:3)

他们是Default Argument Values

我认为Java不支持它。

答案 1 :(得分:3)

这些是默认参数。您可以初始化类实例,如my_class(1, 2, 3),它会将derp1设置为1,derp2设置为2,derp3设置为3.因为提供了默认值,您也可以将其称为my_class(5),并将derp1设置为5,derp2为0,derp3为0。

请记住,derp变量是__init__函数的本地变量,因此如果要保留它们,则需要将它们分配给某个类变量。例如,在__init__中,您可以通过执行self.derpaderp = derp1来保存derp1值,然后在您班级的其他位置将该值称为self.derpaderp