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)

処理は以下のように進みます:

  1. Pythonが Person("John", 30) を見て、Person クラス内の __init__ メソッドを呼び出します。
  2. "John" がそのオブジェクトの name 属性に、30age 属性にそれぞれ割り当てられます。
  3. 新しいオブジェクトが生成され、それが 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.

ここでは:

  • person1person2 は両方とも Person オブジェクトですが、それぞれが異なる状態 (nameage の値) を持っています。
  • greet() のようなメソッドは両オブジェクトで同じように動作しますが、持つ属性に基づいて異なる結果を出します。

まとめ

オブジェクトを作成することは、クラスに命を吹き込むことです。 一つの設計図から、多数の固有のインスタンスを生み出せます。それぞれが独自のデータを持ちつつ、同じ振る舞いを共有します。

次のレッスンでは、継承について学びます。継承は既存のクラスをもとに新しいクラスを作り、機能を再利用・拡張する方法です。