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

これらはデフォルトのパラメータです。クラス インスタンスを次のようmy_class(1, 2, 3)に初期化すると、derp1 を 1 に、derp2 を 2 に、derp3 を 3 に設定できます。デフォルトが提供されているので、like を呼び出してmy_class(5)、derp1 を 5、derp2 を 0、derp3 を 0 に設定することもできます。

derp 変数は__init__関数に対してローカルであるため、それらを保持する場合はクラス変数に割り当てる必要があることに注意してください。たとえば、 では__init__、 を実行して derp1 値を保存し、self.derpaderp = derp1その値をクラス内の別の場所として参照できself.derpaderpます。

于 2012-04-17T06:44:40.063 に答える
3

それらはDefault Argument Valuesです。

Javaはサポートしていないと思います。

于 2012-04-17T06:42:42.410 に答える