>>> class Cls: #クラスを作る ... def hoge(self): #これがメソッド ... self.x = "Hogera!" #インスタンス変数『x』に文字列を"代入 ... >>> a = Cls() #代入でインスタンスを生成する >>> a #これがインスタンス <__main__.Cls instance at 0x787df0> >>> a.hoge <bound method Cls.hoge of <__main__.Cls instance at 0x787df0>> >>> a.x #まだ代入されてないからエラー Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: Cls instance has no attribute 'x' >>> a.hoge() #ここでself.xに"Hogera!"が入る >>> a.x 'Hogera!'
インスタンス == self ?
メソッド== classの中の関数?
メソッド関数の宣言では、オブジェクト自体をあらわす明示的な第一の引数を伴います。
:慣習として、メソッドの最初の引数を、しばしば self と呼びます。
Pythonチュートリアル 9.クラス
メソッドの最初の引数はselfだから、self == インスタンスなので、メソッドの最初の引数にインスタンスが渡される。
こういうことかなぁ?(゚Д゚)
参考
『M.Hiroi's Home Page / Lightweight Language』さんの『お気楽 Python プログラミング入門 第 5 回 オブジェクト指向の基礎知識』を参考にさせていただきました。