
クラスの基本を学んだ次のステップは「メソッド」です。メソッドを使うことで、クラスに「データ」だけでなく「処理」も持たせることができます。
メソッドとは
メソッドは、クラスの中で定義された関数のことです。
通常の関数との違いは「クラスの中に定義される」という点だけで、基本的な書き方は関数と同じです。
# 通常の関数
def greet():
print("こんにちは")
# メソッド(クラスの中の関数)
class User:
def greet(self):
print("こんにちは")
メソッドの第1引数は必ず「self」
メソッドを定義するとき、第1引数には必ず self を指定するというルールがあります。
class Car:
def drive(self):
print("走っています")
self とは何か?
self は、メソッドを呼び出したインスタンス自身を指します。
class Car:
def info(self):
print(f"色: {self.color}") # selfを使ってインスタンス変数にアクセス
my_car = Car()
my_car.color = "blue"
my_car.info() # 色: blue
self.color と書くことで、そのインスタンスが持つ color 変数にアクセスできます。
インスタンスメソッドの呼び出し
インスタンスに対してメソッドを使うことを「インスタンスメソッド」と言います。
構文: インスタンス.メソッド名()
class Car:
def drive(self):
print("走っています")
def stop(self):
print("止まりました")
my_car = Car()
# メソッドの呼び出し
my_car.drive() # 走っています
my_car.stop() # 止まりました
selfを使ったインスタンス変数へのアクセス
self を使うことで、メソッド内からインスタンス変数を読み書きできます。
class Car:
def set_color(self, color):
self.color = color # インスタンス変数に値をセット
def show_info(self):
print(f"この車の色は {self.color} です")
my_car = Car()
my_car.set_color("red")
my_car.show_info() # この車の色は red です
selfが必要な理由
なぜ self が必要なのか疑問に思うかもしれません。
複数のインスタンスが存在するとき、self がないとどのインスタンスのデータを操作しているか分からなくなります。
class Car:
def show_color(self):
print(self.color) # selfがあるから「このインスタンス」のcolorだと分かる
car1 = Car()
car1.color = "blue"
car2 = Car()
car2.color = "red"
car1.show_color() # blue(car1のselfが渡される)
car2.show_color() # red(car2のselfが渡される)
self があることで、それぞれのインスタンスが自分自身のデータを正しく扱えます。
今日の学びのポイント
- メソッド = クラスの中で定義された関数
- 第1引数は必ず
self(ルール) self= メソッドを呼び出したインスタンス自身- インスタンスメソッド = インスタンスに対して使うメソッド
- 呼び出しは
インスタンス.メソッド名()
メソッドを使いこなすことで、クラスはより強力なツールになります。次は、インスタンス生成時に自動で実行される特別なメソッド __init__ を学びます。


コメント