Pythonのクラス:設計図からインスタンスを作る

これまでの学習で、変数・関数・モジュールを学びました。今日から「クラス」に入ります。クラスは、Pythonにおけるオブジェクト指向プログラミングの核心です。最初は難しく感じるかもしれませんが、「設計図」と「もの」のイメージで整理すると分かりやすくなります。

クラスとインスタンスの関係

クラスを理解するうえで、まず2つの概念を整理します。

  • クラス(設計図): ものを作るための型・テンプレート
  • インスタンス(もの): 設計図をもとに実際に作られたもの

例えば、「車の設計図(クラス)」があれば、そこから「実際の車(インスタンス)」を何台でも作れます。設計図は1つでも、インスタンスはいくつでも生成できます。

インスタンス生成の3ステップ

クラスからインスタンスを作るまでの流れは以下の通りです。

  1. 設計図(クラス)を用意する
  2. クラスから空のインスタンスを生成する
  3. インスタンスに情報を追加する

実際のコードで確認しましょう。

クラスの定義

構文: class クラス名:

class Car:
    pass

ポイント

  • class キーワードで定義する
  • クラス名は大文字で始める(例: Car, User, Product)
  • コロン : が必要
  • 中身はインデントで字下げする
  • pass は「何も処理をしない」という意味で、中身が空のクラスを定義するときに使う

インスタンスの生成

構文: 変数名 = クラス名()

class Car:
    pass

# インスタンスの生成
my_car = Car()

Car() と書くことで、Carクラスのインスタンスが生成され、変数 my_car に代入されます。

インスタンス変数:インスタンスに情報を追加する

生成したインスタンスに情報を持たせるには、インスタンス変数を使います。

構文: 変数名.インスタンス変数名 = 値

class Car:
    pass

my_car = Car()

# インスタンス変数を追加
my_car.color = "blue"
my_car.speed = 200

print(my_car.color)  # blue
print(my_car.speed)  # 200

. (ドット)の後に書く名前がインスタンス変数です。インスタンスごとに異なる情報を持たせることができます。

car1 = Car()
car1.color = "blue"

car2 = Car()
car2.color = "red"

print(car1.color)  # blue
print(car2.color)  # red(別のインスタンスなので独立している)

クラスを使うメリット

関数だけでは、データと処理がバラバラになりがちです。クラスを使うことで、データ(インスタンス変数)と処理(メソッド)をまとめて管理できます。これが、コードが複雑になる実務レベルのプログラムでクラスが重宝される理由です。

今日の学びのポイント

  • クラス = 設計図、インスタンス = 設計図から作られたもの
  • class クラス名: で定義(クラス名は大文字始め、コロン必須)
  • 変数名 = クラス名() でインスタンスを生成
  • 変数名.インスタンス変数名 = 値 でインスタンスに情報を追加
  • pass は何も処理をしないことを示す

クラスはここからさらに深くなります。次はクラスの中に関数(メソッド)を定義する方法を学びます。


コメント