【めそっど】

メソッド とは?

最終更新:
💡 オブジェクトの「できること(動作)」を定義した関数

クラスやオブジェクトに結び付いた処理。オブジェクト指向では、データを持つオブジェクトの動作を表すために使う。定義や呼び出し方の細部は言語によって異なる。

📌 このページのポイント
メソッド:オブジェクトに結び付く処理 犬オブジェクト 属性(データ) 名前:ポチ メソッド(処理) 吠える() 走る(速度) 犬.吠える() 呼び出し 「ワン!」 動作の例 データを使う処理をオブジェクトへ
犬の名前という属性と、吠える・走るという処理を区別した模式例。橙は呼び出し、緑は動作。実際の定義や呼び出し方、戻り値は言語とメソッドの仕様によります。
ひよこ ひよこ
メソッドって関数と何が違うの?
ペンギン先生 ペンギン先生
まずは、オブジェクトやクラスに結び付いた処理と考えよう。Pythonではクラスの関数をインスタンスから参照すると、そのインスタンスと結び付いたメソッドになる。言語ごとの仕組みがあるから、クラスの中に書いたかだけで一律には決められないよ。
ひよこ ひよこ
具体的な呼び出し方を教えて!
ペンギン先生 ペンギン先生
Pythonでitems = []というリストを作り、items.append("りんご")と呼ぶと、そのリストの末尾に要素を追加する。appendがメソッドで、"りんご"が引数だよ。
ひよこ ひよこ
自分のデータはどう使うの?
ペンギン先生 ペンギン先生
Pythonのインスタンスメソッドは、呼び出したインスタンスを最初の引数として受け取るよ。普通はselfという名前を付け、self.nameのようにそのインスタンスのデータを参照するんだ。
ひよこ ひよこ
staticメソッドとクラスメソッドは同じ?
ペンギン先生 ペンギン先生
Pythonでは違うよ。classmethodはクラスを最初の引数として受け取り、staticmethodにはインスタンスやクラスが自動では渡されない。他の言語での呼び名や意味と混同しないようにしよう。
ひよこ ひよこ
メソッドなら続けて呼べるの?
ペンギン先生 ペンギン先生
次に呼ぶメソッドを持つ戻り値が必要だよ。Pythonのlist.appendはリストを変更してNoneを返すので、items.append("りんご").append("みかん")とは繋げられない。戻り値の仕様を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「メソッド」って出てきたら「オブジェクトやクラスに結び付いた処理」と思えばだいたいOK!
📖 おまけ:英語の意味
「Method」 = 方法・手順
💬 英語のmethodは方法や手順という意味。プログラミングでは、オブジェクトやクラスに結び付いた処理を指す用語として使うよ。

参考資料

← 用語集にもどる