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 リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python の変数とデータ型の説明
Python 変数と主要なデータ型 (文字列、整数、浮動小数点数、ブール値) を理解します。 Python でのメモリ割り当ての完全な初心者ガイド。
Python 辞書メソッドのチートシート
Python の辞書メソッドを学習します。キーと値のペアの挿入、取得、更新、チェックに関する完全なリファレンス ガイド。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。