クラスとインスタンス | クラスの定義 | Python本格超入門

スポンサーリンク
スポンサーリンク

クラスとインスタンス

オブジェクト指向プログラミングの中心的な概念は、「クラス」と「インスタンス」です。クラスはオブジェクトの設計図であり、インスタンスはその設計図から作られた具体的なオブジェクトです。ここでは、Pythonにおけるクラスとインスタンスの違いを学び、実際にどのように定義して使うかを解説します。

クラスの定義

クラスを定義するには、classキーワードを使用します。以下に、Personというクラスの例を示します。


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        return f"こんにちは、私の名前は{self.name}です。"
    

インスタンスの生成

クラスからオブジェクト(インスタンス)を作成するには、クラス名を関数のように呼び出します。インスタンス化する際には、__init__メソッドに渡す引数を指定します。


# Personクラスのインスタンスを生成
person1 = Person("太郎", 30)

# インスタンスのメソッドを呼び出す
print(person1.greet())  # 出力: こんにちは、私の名前は太郎です。
    

クラスとインスタンスの違い

クラスはオブジェクトの設計図であり、インスタンスはその設計図を元に作成された具体的なオブジェクトです。クラスは、共通の属性やメソッドを持つ複数のインスタンスを作成するために使われます。以下に、クラスとインスタンスの関係性をまとめた表を示します。

概念 説明
クラス オブジェクトの設計図。属性やメソッドを定義する。
インスタンス クラスを基に作られた実際のオブジェクト。
属性 クラスやインスタンスが持つデータ(nameageなど)。
メソッド インスタンスが持つ動作や機能(greet()など)。

まとめ

クラスはオブジェクトの設計図であり、インスタンスはその設計図を元に具体的に作成されたオブジェクトです。クラスを使うことで、オブジェクト指向プログラミングにおける再利用性や可読性を高めることができます。Pythonでは、__init__メソッドを使ってクラスに属性を持たせ、インスタンス化されたオブジェクトに対してメソッドを呼び出すことができます。