1

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

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

我希望看到这样的论点:

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

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

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

现在,对我来说,这看起来像是某种条件构造函数,专门在 (self,0,0,0) 已通过时使用。这不应该是这种情况,因为没有替代构造函数。

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

我试过谷歌搜索来弄清楚这意味着什么,但我运气不好。

感谢您提供的任何帮助。

4

2 回答 2

3

它们是默认参数值

我认为Java不支持它。

于 2012-04-17T06:42:42.410 回答
3

这些是默认参数。你可以像这样初始化一个类实例my_class(1, 2, 3),它将 derp1 设置为 1,derp2 设置为 2,derp3 设置为 3。因为提供了默认值,你也可以调用它my_class(5),它将 derp1 设置为 5,derp2 设置为 0,derp3 设置为 0。

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

于 2012-04-17T06:44:40.063 回答