メソッドの定義と呼出し
クラスの中で定義された関数のことをメソッドといい、インスタンス化することによって利用可能となる。これはインスタンスに属するオブジェクトであることから、インスタンスメソッドとよばれる。
Myclassクラスに次のメソッドを追加することを考える。
メソッド名:method
説明:「methodメソッドを実行しました」と表示する。
引数:なし
戻り値:なし
メソッドの定義はdef文を用いて行われる。
code:class31.py
class Myclass:
def method(self): # (1)
print('# methodメソッドを実行しました')
m1 = Myclass() # (2):1つ目のインスタンス生成
m1.method() # (3):メソッドの呼出し
m2 = Myclass() # (2'):2つ目のインスタンス生成
m2.method() # (3'):メソッドの呼出し
これでmethodメソッドを構成要素に持つMyclassクラスが定義される。
(1) : メソッドは第1引数にselfという名前の仮引数をもつ。この意味は後から解説する。
メソッドはインスタンスに属するため、メモリ上には同名のメソッドがインスタンスの数だけ存在する。
(3), (3') : インスタンス化する時に割り当てた変数を通じて、呼び出したいメソッドを指定する。
https://scrapbox.io/files/65092bf702dd8c001bb146f9.png
緑色:Myclassクラスはmethodメソッドを有することを定義している。これは単なる「定義」であるため処理の実体を意味しておらず、呼び出すことはできない。
肌色:インスタンス化された処理の実体m1, m2がメモリ上に生成された様子を示している。この中のmethodメソッドは呼び出すことができる。
赤矢印は、変数を通じたメソッドの呼び出しを示している。
/icons/hr.icon
※ ブラウザのバックボタンで戻る