Categories: python

Pythonのメソッドとは?仕組み・使い方・関数との違いをやさしく解説

Pythonを学んでいると「メソッド」という言葉をよく目にします。
関数とよく似ていて、「どう違うの?」「どんなときに使うの?」と疑問に思う方も多いでしょう。

この記事では、Pythonのメソッドとは何か、その基本的な仕組みや使い方、関数との違いを初心者の方にもわかりやすく解説します。
具体例を交えながら、実際にコードを書いて理解を深められるよう構成していますので、ぜひ一緒に学んでいきましょう。


メソッドとは何か?関数との違い

Pythonにおける**メソッド(method)**とは、「特定のオブジェクトに結びついた関数」のことです。
例えば、文字列やリストなどのデータ型が持つ「動作」がメソッドです。

関数は独立して動作しますが、メソッドはオブジェクト(=データ)とセットで動作するという特徴があります。

関数とメソッドの違いをざっくり言うと

概要関数メソッド
定義方法deflambdaなどクラス内で定義される
呼び出し方関数名()オブジェクト.メソッド名()
所属どこにも属さないオブジェクトに属している

例:関数とメソッドの違い

# 関数の例
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()) # → ポチがワンと鳴いた!

このように、barkDogクラスに属するメソッドで、dog1オブジェクトとセットで使われます。

selfってなに?

クラス内のメソッドでは、必ず第一引数に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

Pythonのメソッドを効果的に活用するポイント

メソッドを使いこなすためには、次の点を意識するとよいでしょう。

  • オブジェクトの種類によって使えるメソッドが異なる
    • dir(オブジェクト)で一覧表示できます
  • メソッドチェーンに注意
    • 例:"hello".upper().replace("H", "Y") のように連続して使うことが可能
  • クラス設計時はインスタンスとクラスメソッドを使い分ける

メソッドの使い方に慣れると、コードがより「オブジェクト指向」的に読みやすく、再利用しやすくなります。


まとめ

Pythonの「メソッド」とは、オブジェクトに属する関数のことです。
文字列やリストなどに備わっている便利なメソッドを使えば、より簡潔で直感的なコードが書けます。

また、自作のクラスにメソッドを定義することで、処理を論理的に整理し、拡張性のあるプログラムを作ることができます。

Pythonの習得にはメソッドの理解が欠かせません。小さなコードを書きながら、実際に動作を確認して覚えていくことが近道です。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。