Python でクラスを作成する方法 (オブジェクト指向プログラミング)

Python でクラスを作成する方法を学びます。 __init__ コンストラクター、インスタンス メソッド、self キーワード、オブジェクトのインスタンス化をマスターします。

エディターでこのソリューションを試してください

概要

オブジェクト指向プログラミング (OOP) は、現実世界のエンティティをモデル化し、アプリケーションを構造化し、コードの再利用性を促進するために使用される強力なパラダイムです。 Python ではすべてがオブジェクトであり、クラスは個々のオブジェクトが作成される青写真です。クラスを作成すると、データ属性と関数を一緒にバンドルできます。

クラスを定義するには、`class` キーワードの後にクラス名を使用します (従来は PascalCase で記述されていました)。クラス内で最も重要なメソッドはコンストラクター `__init__(self, ...)` です。この特別なマジック メソッドは、クラスをインスタンス化するときに自動的に実行され、オブジェクトの開始データ属性が初期化されます。

`self` パラメータは、現在作成または変更しているクラスの特定のインスタンスを表します。クラス内のすべてのインスタンス メソッドは、最初の引数として `self` を受け入れる必要があります。インスタンス メソッドは、オブジェクトの属性を操作するクラス内で定義された関数であり、ロジックのクリーンなカプセル化を可能にします。

コードと実行の出力

このスクリプトは、クラスの作成、プロパティ、クラス インスタンス メソッドの定義、およびオブジェクトの作成を示します。

# 1. Defining a class
class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email
        self.active = True  # Default attribute

    def get_info(self):
        status = "Active" if self.active else "Inactive"
        return f"User: {self.username} | Email: {self.email} | Status: {status}"

# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")

# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)
端子出力
User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.com

段階的な実装

  • class キーワードを使用してクラス テンプレートを宣言します。
  • __init__(self, ...) コンストラクターを定義して初期属性を設定します。
  • オブジェクトの状態を操作するために、最初のパラメーターとして self を受け入れるインスタンス メソッドを追加します。
  • ClassName(...) を呼び出して、新しいオブジェクト インスタンスをインスタンス化して作成します。

よくある質問

self パラメータは何を表しますか?

これは、作成または操作されるオブジェクトの特定のインスタンスを指します。属性をインスタンスにバインドする必要があります。

クラスはすべてのインスタンス間で共有される属性を持つことができますか?

はい、これらはクラス属性です。これらをクラス ヘッダーの直下 (__init__ の外側) に定義し、ClassName.attribute を使用してアクセスします。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。