Python基礎:オブジェクト指向プログラミング(OOP)
Python基礎:オブジェクト指向プログラミング(OOP)
Lesson 2 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
クラスを定義したら、そこからオブジェクトを生成して実際に動かすことができます。
覚えておいてください:クラスはあくまで設計図であり、オブジェクト(インスタンスとも呼ばれます)を作成するまでは実際のデータは保持していません。
オブジェクトの作り方
クラスからオブジェクトを作成するには、関数のようにクラス名を呼び出し、__init__ メソッドに必要なパラメータを渡します。
例:
person1 = Person("John", 30)
処理は以下のように進みます:
- Pythonが
Person("John", 30)を見て、Personクラス内の__init__メソッドを呼び出します。 "John"がそのオブジェクトのname属性に、30がage属性にそれぞれ割り当てられます。- 新しいオブジェクトが生成され、それが
person1変数に保存されます。
TIP: 変数 `person1` はメモリ上のオブジェクトへの参照にすぎません。必要に応じて複数の変数が同じオブジェクトを指し示すことも可能です。
属性とメソッドへのアクセス
オブジェクトができたら、ドット表記を使ってその属性(データ)やメソッド(動作)にアクセスできます。
例:
print(person1.name) # 出力: John
person1.greet() # 出力: Hello, my name is John and I am 30 years old.
person1.nameはオブジェクト内のname属性の値を取得します。person1.greet()はメソッドgreetを呼び出し、オブジェクトの属性を使ったパーソナライズされたメッセージを表示します。
IMPORTANT!: メソッドを呼び出す際は必ず括弧 () をつけてください。括弧をつけないと、単にメソッドへの参照を取得するだけで実行はされません。
複数オブジェクトの生成
クラスの強みの一つは、好きなだけオブジェクトを作り、それぞれ固有のデータを持たせられることです。
例:
person2 = Person("Alice", 25)
print(person2.name) # 出力: Alice
person2.greet() # 出力: Hello, my name is Alice and I am 25 years old.
ここでは:
person1とperson2は両方ともPersonオブジェクトですが、それぞれが異なる状態 (nameとageの値) を持っています。greet()のようなメソッドは両オブジェクトで同じように動作しますが、持つ属性に基づいて異なる結果を出します。
まとめ
オブジェクトを作成することは、クラスに命を吹き込むことです。 一つの設計図から、多数の固有のインスタンスを生み出せます。それぞれが独自のデータを持ちつつ、同じ振る舞いを共有します。
次のレッスンでは、継承について学びます。継承は既存のクラスをもとに新しいクラスを作り、機能を再利用・拡張する方法です。