オブジェクト指向 中級

58. インスタンスメソッドを定義する

クラスに「動作」を持たせる

クラスにはデータ(属性)だけでなく、動作(メソッド)も持たせることができます。「犬」というクラスなら、鳴くという動作があってもよさそうですよね。クラスの中で定義する関数のことをメソッドと呼び、こちらも第一引数には必ずselfを書きます。selfを通すことで、メソッドの中から「自分自身が持っている情報(self.name など)」を自由に使えるようになります。

呼び出すときは インスタンス.メソッド名() という形になります。selfの部分は、Pythonが呼び出し元のインスタンスを自動で渡してくれるので、私たちが明示的に書く必要はありません。

サンプルコード

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f'{self.name}: ワンワン!')

dog1 = Dog('ポチ')
dog1.bark()
bark()メソッドの中で self.name を使うことで、そのインスタンス自身が持つ名前を使ったメッセージを表示できます。dog1.bark()と呼び出すと、Pythonが自動でdog1をselfとして渡してくれます。

📝 練習問題

練習問題:Personクラスにgreet()メソッドを追加し、「こんにちは、〇〇です」と自己紹介するようにしてください。