Pythonを学んでいると「メソッド」という言葉をよく目にします。
関数とよく似ていて、「どう違うの?」「どんなときに使うの?」と疑問に思う方も多いでしょう。
この記事では、Pythonのメソッドとは何か、その基本的な仕組みや使い方、関数との違いを初心者の方にもわかりやすく解説します。
具体例を交えながら、実際にコードを書いて理解を深められるよう構成していますので、ぜひ一緒に学んでいきましょう。
Pythonにおける**メソッド(method)**とは、「特定のオブジェクトに結びついた関数」のことです。
例えば、文字列やリストなどのデータ型が持つ「動作」がメソッドです。
関数は独立して動作しますが、メソッドはオブジェクト(=データ)とセットで動作するという特徴があります。
概要 | 関数 | メソッド |
---|---|---|
定義方法 | def やlambda など | クラス内で定義される |
呼び出し方 | 関数名() | オブジェクト.メソッド名() |
所属 | どこにも属さない | オブジェクトに属している |
# 関数の例
def greet(name):
return f"こんにちは、{name}さん"
print(greet("太郎")) # → こんにちは、太郎さん
# メソッドの例(文字列型のメソッド)
name = "tarou"
print(name.capitalize()) # → Tarou
capitalize()
は文字列オブジェクト(ここでは"tarou"
)に対するメソッドです。
Pythonでは、あらゆるデータ型(文字列・リスト・辞書など)が独自のメソッドを持っています。ここでは代表的なものを紹介します。
text = "hello world"
print(text.upper()) # HELLO WORLD(すべて大文字に)
print(text.replace("hello", "hi")) # hi world(文字列を置換)
items = [1, 2, 3]
items.append(4) # 要素を追加
print(items) # [1, 2, 3, 4]
items.reverse() # 要素を逆順に
print(items) # [4, 3, 2, 1]
info = {"name": "Ken", "age": 30}
print(info.keys()) # dict_keys(['name', 'age'])
print(info.get("name")) # Ken
これらのように、オブジェクトに.
(ドット)をつけて呼び出すのがメソッドの特徴です。
Pythonでは、class
を使って独自のクラスを作成できます。クラスの中で定義する関数が「メソッド」です。
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name}がワンと鳴いた!"
# オブジェクト生成
dog1 = Dog("ポチ")
print(dog1.bark()) # → ポチがワンと鳴いた!
このように、bark
はDog
クラスに属するメソッドで、dog1
オブジェクトとセットで使われます。
クラス内のメソッドでは、必ず第一引数にself
を使います。これはそのオブジェクト自身を指す特別な引数です。self.name
と書くことで、インスタンス固有のデータにアクセスできます。
Pythonには、次の3種類のメソッドがあります。
種類 | 特徴 | 定義方法 |
---|---|---|
インスタンスメソッド | 最も一般的。オブジェクトごとの処理 | def メソッド(self) |
クラスメソッド | クラス全体に関わる処理 | @classmethod + def メソッド(cls) |
静的メソッド | 状態を保持しない汎用処理 | @staticmethod + def メソッド() |
class Book:
books_created = 0
def __init__(self, title):
self.title = title
Book.books_created += 1
@classmethod
def total_books(cls):
return f"今までに{cls.books_created}冊の本が作られました"
book1 = Book("Python入門")
book2 = Book("AIの未来")
print(Book.total_books()) # 今までに2冊の本が作られました
class Calculator:
@staticmethod
def add(x, y):
return x + y
print(Calculator.add(3, 5)) # → 8
メソッドを使いこなすためには、次の点を意識するとよいでしょう。
dir(オブジェクト)
で一覧表示できます"hello".upper().replace("H", "Y")
のように連続して使うことが可能メソッドの使い方に慣れると、コードがより「オブジェクト指向」的に読みやすく、再利用しやすくなります。
Pythonの「メソッド」とは、オブジェクトに属する関数のことです。
文字列やリストなどに備わっている便利なメソッドを使えば、より簡潔で直感的なコードが書けます。
また、自作のクラスにメソッドを定義することで、処理を論理的に整理し、拡張性のあるプログラムを作ることができます。
Pythonの習得にはメソッドの理解が欠かせません。小さなコードを書きながら、実際に動作を確認して覚えていくことが近道です。