Pythonを使ったプログラミングでは、「クラス」と「インスタンス」は避けて通れない重要な概念です。でも初めて学ぶときはちょっと混乱しがちですよね。この記事では、クラスとは何か、インスタンスとは何かをわかりやすく解説し、シンプルな演習問題を交えて理解を深めていきます。
1. クラスとは?

クラスは「設計図」だと思ってください。例えば、”車”を作るためには設計図が必要ですよね。設計図には車の名前や色、車ができる動作(例えば、走る、止まるなど)が記されています。
Pythonのクラスは、データとそのデータを使った作業をまとめて扱えるようにするための仕組みです。
クラスの基本構文

class クラス名:としてclassを定義します。 クラス名は慣習として大文字で始めます(例: Car
)。Python のクラスはコードを整理し、データとその処理をひとまとめに管理するのに役立ちます。
class Car: #これはクラスの定義です。
pass #今はまだ処理をするものがないので「pass」とします
2. インスタンスとは?
インスタンスは、クラス(車の設計図)をもとに作られた「実物」です。設計図(クラス)から具体的な車(インスタンス)を作るようなイメージです。
インスタンスの生成

クラス名()と書くことで、クラス(設計図)を使って新しいインスタンス(実際のモノ)を作ることができます。さらに、作ったインスタンスを変数に入れたい場合は、変数名 = クラス名() と書きます。これで、変数を使ってそのインスタンスを操作できるようになります。
class Car:
pass
my_car = Car() # Carクラスのインスタンスを作成
3. インスタンス変数とは?
インスタンス変数は、それぞれのインスタンス固有の情報を保存するためのものです。1つのインスタンス(実物)には独自のデータが付けられるため、設計図(クラス)から作られた複数のインスタンスを差別化できます。
情報を追加

下記のように、my_car.color = ‘red’とすることで、my_carのcolorがredであるという情報を追加することができます。
このときの、colorのことをインスタンス変数と呼びます
class Car:
pass
my_car = Car()
my_car.color = "red" # インスタンス変数を設定
my_car.model = "Sedan" # インスタンス変数を設定
print(my_car.color) # 出力: red
print(my_car.model) # 出力: Sedan
4. 演習問題で理解しよう!
問題1
コードを完成させて、「青色のSUV」という車your_car
を作ってください。
- クラス
Car
を定義し、インスタンス変数color
とmodel
を持つようにします。 your_car
インスタンスを作り、その色とモデル名を出力してください。
class Car: #Carクラスを定義
pass
your_car = Car() #Carクラスのインスタンスを作成
your_car.color = 'ホワイト' #インスタンス変数(color)に色を追加
your_car.model = 'SUV' #インスタンス変数(model)にモデルを追加
print(your_car.color) #出力 ホワイト
print(your_car.model) #出力 SUV
問題2
以下のコードを完成させて、「青色のSUV」という車your_car
を作ってください。
- クラス
Car
を定義し、インスタンス変数color
とmodel
を持つようにします。 your_car
インスタンスを作り、その色とモデル名を出力してください。
class Car: #Carクラスを定義
pass
my_car = Car() #Carクラスのインスタンスを作成
my_car.color = 'ホワイト' #インスタンス変数(color)に色を追加
my_car.model = 'SUV' #インスタンス変数(model)にモデルを追加
print(my_car.color) #出力 ホワイト
print(my_car.model) #出力 SUV
5. まとめ
今回は「クラス」と「インスタンス」、そして「インスタンス変数」について解説しました。
- クラスは「設計図」(例 Car)
これ自体は単なるひな型で、具体的な実物ではありません。 - インスタンスは「設計図から作られる実物」(例 my_car)
これが実際の車そのものを指します。 - インスタンス変数は「その実物に付された具体的な特徴やデータ」(例 colorやmodel)
これはインスタンスごとに異なる値を持つことができます。

クラス、インスタンス、メソッド...など、いろんな概念が出てきて、何がどの意味だったかわからなくなってきますよね!
これから “class” をさらに学んでいく中で、クラス、インスタンス、インスタンス変数だけでなく、メソッドや他の重要な概念も登場します。それぞれの単語が何を意味するのかをしっかり理解していると、コードを読むときや書くときに自然と考えが繋がるようになるでしょう。
次回は「クラス内に定義する関数」、つまり「メソッド」について分かりやすく解説していきます。質問や感想があればぜひコメントしてくださいね!
コメント