0

重複の可能性:
python 'self' の説明

私はPythonの初心者です。クラスとイテレータのチュートリアルを進めていたときに、自分で説明できないことに疑問を感じました。以下のプログラム テキストは、面積を計算するクラスの一部です。

def __init__(self,len,wid):
    self.length=len
    self.width=wid

def calculate_area(self)
    return self.length*self.width

def print_area(self)
    print 'Area='+str(self.calculate_area())

私が理解できないのは、関数の引数リストに「self」があるのはなぜですか? その役割は何ですか?すべての変数が「自己」で解決されるのはなぜですか?

4

2 に答える 2

2

これは、C++ の this ポインターに似ています (C++ のバックグラウンドを持っている場合)。典型的な使用法は、あいまいさがある場合に備えて、オブジェクトのメンバーを自分自身で参照できることです。例えば

def calculate_area(self, length)
    return self.length*self.width

上記の長さは、calculate_area 関数の引数です。オブジェクトに長さメンバーもある場合は、self.length を使用して解決できます。

ここで既存の回答を参照してください:

自己の目的は何ですか?

于 2012-07-18T09:12:51.530 に答える
0

私が Python の世界に慣れていないことはよくわかりませんが、Python はthisC# や Java のように価値を提供していないと思います。そのため、これは Python がクラスで自身を定義するために使用するメカニズムです。

selfとにかく、関数呼び出しで as パラメーターを渡す必要がないことがわかります。Python が代わりに行うからです。

これは私の理論ですが、私も知りたいと思っているので、もし誰かがこれについてもっと言ってくれたら、とてもありがたいと思います.

またね!

于 2012-07-18T09:12:53.353 に答える