クラスとインスタンス
オブジェクト指向プログラミングの中心的な概念は、「クラス」と「インスタンス」です。クラスはオブジェクトの設計図であり、インスタンスはその設計図から作られた具体的なオブジェクトです。ここでは、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()) # 出力: こんにちは、私の名前は太郎です。
クラスとインスタンスの違い
クラスはオブジェクトの設計図であり、インスタンスはその設計図を元に作成された具体的なオブジェクトです。クラスは、共通の属性やメソッドを持つ複数のインスタンスを作成するために使われます。以下に、クラスとインスタンスの関係性をまとめた表を示します。
概念 | 説明 |
---|---|
クラス | オブジェクトの設計図。属性やメソッドを定義する。 |
インスタンス | クラスを基に作られた実際のオブジェクト。 |
属性 | クラスやインスタンスが持つデータ(name やage など)。 |
メソッド | インスタンスが持つ動作や機能(greet() など)。 |
まとめ
クラスはオブジェクトの設計図であり、インスタンスはその設計図を元に具体的に作成されたオブジェクトです。クラスを使うことで、オブジェクト指向プログラミングにおける再利用性や可読性を高めることができます。Pythonでは、__init__
メソッドを使ってクラスに属性を持たせ、インスタンス化されたオブジェクトに対してメソッドを呼び出すことができます。