Pythonのメソッド(Method)とは?クラスとオブジェクトの操作方法をわかりやすく解説
メソッド(Method)とは、クラスの中で定義される関数のことです。
クラスから作られたオブジェクト(インスタンス)に対して、操作や処理を行うための手段として使われます。
基本構文
class クラス名:
def メソッド名(self, 引数):
処理内容
self
はそのインスタンス自身を指すキーワードで、メソッド内からインスタンスの属性にアクセスするために使います。
メソッドの定義と呼び出し
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print(f"こんにちは、{self.name}です。")
p = Person("さくら")
p.greet() # → こんにちは、さくらです。
メソッドは オブジェクト.メソッド名()
のように呼び出します。
引数付きのメソッド
class Calculator:
def add(self, a, b):
return a + b
c = Calculator()
print(c.add(3, 5)) # → 8
インスタンスメソッド
self
を第1引数にとるメソッドは、インスタンスごとに動作する「インスタンスメソッド」です。
もっともよく使われる形式です。
クラスメソッド(@classmethod)
class Sample:
count = 0
@classmethod
def show_count(cls):
print(f"count = {cls.count}")
@classmethod
を付けたメソッドは、クラス全体に関わる処理を行うときに使われ、cls
が第1引数になります。
静的メソッド(@staticmethod)
class Math:
@staticmethod
def square(x):
return x * x
print(Math.square(4)) # → 16
@staticmethod
は、インスタンスにもクラスにも依存しない処理をまとめたいときに使います。
メソッドと関数の違い
- 関数:クラスの外で定義される
- メソッド:クラスの中で定義され、
self
や cls
を使う
まとめ
Pythonのメソッド(Method)は、クラスやオブジェクトに動作を与える関数です。
self
を使うことで、インスタンスごとの属性にアクセスしながら、柔軟な処理が可能になります。
まずはインスタンスメソッドに慣れたうえで、クラスメソッドや静的メソッドにも挑戦して、より実用的なクラス設計を目指しましょう!