7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

初学者のためのPython講座 オブジェクト指向編3 メソッド

Last updated at Posted at 2018-11-16

メソッドを定義する

メソッドとは、オブジェクトに対する何かしらの操作、または、オブジェクト自身が備えている固有の機能と捉えられます。
メソッドの定義は通常の関数と同じようにdef文を使って定義しますが、class文の下にあり、第1引数に必ずselfを指定する、という点が関数の定義と異なります。このselfはインスタンス自身を表す引数ですが、まだどういうことか理解する必要はありません。今はメソッド定義の決まりごととして覚えておきましょう。

【書式】メソッドの定義.py
class クラス名:
    def メソッド名(self, 引数2, 引数3,):
        処理内容

また、インスタンスを指定してメソッドを実行するには以下の書式で記述します。メソッドを呼び出すときは第1引数selfは不要です。引数に入れる値は、selfを飛ばして2つ目以降の引数に割り当てられます。

【書式】インスタンスにメソッドを実行する.py
インスタンス名.メソッド名(引数2, 引数3,)

ここでは例として簡単なメソッドを定義しましょう。

method_sample1.py
class Sample:
    # メソッドを定義する
    def sum_method(self, a, b):
        print(a + b)
# インスタンスを生成する
s1 = Sample()
# インスタンスを指定してメソッドを呼び出す
s1.sum_method(2, 3)

selfの部分を除けば、通常の関数の定義と変わりないことがわかります。実際に、クラスとインスタンスを作成せずに、メソッドではなく関数で記述すると以下のようになります。

method_sample2.py
# 関数を定義する
def sum_func(a, b):
    print(a + b)
# 定義した関数を実行する
sum_func(2, 3)

このように、書式はメソッドも関数もほとんど違いがありません。では、なぜメソッドと関数を使い分けるのか?メソッドの利点は何か?
一般的に、小規模なプログラムでは関数、大規模なプログラムではメソッド(クラス)を使用するほうが良い、とされています。現時点でその違いを理解するのは難しいかもしれませんが、今後この違いを意識しながら学習していくことで、オブジェクト指向への理解がさらに深まるでしょう。


初学者のためのPython講座 オブジェクト指向編1 オブジェクト指向とは
初学者のためのPython講座 オブジェクト指向編2 クラスとインスタンス
初学者のためのPython講座 オブジェクト指向編3 メソッド
初学者のためのPython講座 オブジェクト指向編4 初期化メソッド

随時追加予定

7
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?