python中self

1605 ワード

pythonにおけるself作用について 
クラスの方法は普通の関数とは特別な違いがあります.付加的な最初のパラメータ名が必要ですが、この方法を呼び出した時にはこのパラメータに値を割り当てません.Pythoonはこの値を提供します.この特別な変数は、オブジェクト自体を指し、慣例としてはselfという名前です.
このパラメータの名前は何でもあげられますが、 強い意見 selfという名前を使っています.他の名前は全部あなたの使用に賛成していません.標準的な名前を使うと多くの利点があります.あなたのプログラムの読者が素早くそれを認識できます.selfを使うと、IDEもあります.
C+++/Java/Cプログラマへの注釈Pythonのselfは、C+におけるselfポインタとJava、Cピラフにおけるthis参照と等価である.
あなたはきっとおかしいと思います.Pythonはどうやってselfに価値を与えますか?そしてなぜあなたはそれに価値を与える必要がないですか?一例を挙げるとこれが分かりやすくなります.MyClassというクラスがあると、このクラスの例MyObjectがあります.このオブジェクトの方法MyObject.method(arg1, arg2)を呼び出すと、これはPythonによって自動的にMyClass.method(MyObject, arg1, arg2)に切り替わります.これはselfの原理です.
これはまた、パラメータを必要としない方法があるならば、この方法にselfパラメータを定義しなければなりません.
上記は簡明なpython教程から来ました.
例:
ヽusr/bin/python
󑧙coding:utf-8
クラスリスト:                       #testクラスを定義する
        desc=「これはテストクラスです.」   #クラスのプロパティを定義します.
        def_init_(self,name):  #オブジェクト構造関数、初期化クラス
                self.name=name
 
        def show(self,name 2):     #クラスで一つの方法を定義します.ショー()
                print「ハローワールド」
                print'name:',self.name
                print'name 2',name 2
 
instance=test('これはnameに伝える値です')  #testクラスのインスタンスオブジェクトinstanceを生成します.
print instance.desc                  #コールクラスのdesc属性
instance.show('これはname 2に伝える値') #呼び出しクラスでのショー()の方法
璢test.show(instance、'これはname 2に伝える値です')の中のinstanceはselfです.