Pythonを少しずつ学び始めると、「クラス」や「インスタンス」、「オブジェクト」という言葉が出てきて戸惑う方も多いのではないでしょうか?
この記事では、クラスとインスタンスの基本を、Google ColabとChatGPTを活用しながら、初心者向けにやさしく解説します。
▶ 前回の記事はこちら:
👉 ChatGPTで学ぶPython関数とスコープ入門
クラスとは?インスタンスとは?まずはイメージしよう
Pythonにおける「クラス」とは、共通する情報や動きをまとめるための設計図のようなものです。
そして、その設計図から作られた実体(もの)がインスタンスです。
✅ 例えるなら…
- クラス:スマートフォンの仕様書(設計図)
- インスタンス:実際に売られている1台1台のスマートフォン
ここでよく混乱するのが「インスタンス」と「オブジェクト」という用語ですが、
✅ Pythonではインスタンスとオブジェクトは基本的に同じ意味で使われます。
「クラスから作られた具体的な実体」を「インスタンス」といい、それは同時に「オブジェクト」でもあります。どちらを使っても問題ありません。
なぜクラスとインスタンスを使うかというと、コードの整理がしやすくなり、複雑な処理をシンプルに扱えるようになるからです。
Pythonでクラスを定義してみよう
クラスの基本構文を理解しましょう。Pythonでは、クラスは以下のように書きます。
class クラス名:
def __init__(self, 引数):
self.変数 = 引数
def メソッド名(self):
# 処理内容
以下は「Dog(犬)」というクラスを作成する例です。
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(self.name + " がワン!と鳴きました")
🔸 __init__() メソッドとは?
これはクラスからインスタンスを作るときに、自動的に呼ばれる特別な関数です。
名前や年齢など、そのインスタンス固有の情報を設定します。
🔸 self の意味
self
は「そのインスタンス自身」を表します。
「その子自身が持っている名前」などにアクセスするために使います。
インスタンスを作成して動かしてみよう
では、実際にクラスからインスタンスを作って動かしてみましょう。
Colabで以下のコードを実行してみよう。
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(self.name + " がワン!と鳴きました")
my_dog = Dog("ポチ")
my_dog.bark()

さらに複数のインスタンスを作ると、それぞれが独立して動作します。
my_dog2 = Dog("ハナ")
my_dog2.bark() # → ハナ がワン!と鳴きました

Dog
クラスは「犬の設計図」、my_dog
はその実体(インスタンス)です。
インスタンスが持つデータと処理を使い分ける
インスタンスは、属性(データ)とメソッド(処理)を持ちます。
class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade
def introduce(self):
print(f"私は{self.name}、{self.grade}年生です")
s1 = Student("たろう", 3)
s2 = Student("はなこ", 2)
s1.introduce() # → 私はたろう、3年生です
s2.introduce() # → 私ははなこ、2年生です
このように、同じクラスから作られても、インスタンスごとにデータは違います。
それぞれ独立した情報を持っています。

初心者がつまずきやすいポイントとChatGPTの活用法
self
を忘れてしまう
クラスの中でメソッドを定義するときは、必ずself
を1番目の引数に書きます。
自分のデータ(属性)にアクセスするために使います。- クラス名は大文字?
通常は 最初の文字を大文字にする(Pythonの命名ルール)
ChatGPTの活用例:
- 「クラスとインスタンスの違いを小学生にもわかるように説明して」
- 「このクラスに年齢の情報を追加するには?」
- 「bark() メソッドの意味を教えて」
ColabとChatGPTをセットで使えば、試して→間違えて→すぐ質問、という学びのサイクルがとてもスムーズです。
クラスとインスタンスの理解が広げるPythonの世界
クラスとインスタンスを理解すれば、次のようなことができるようになります:
- ゲームでキャラクターごとの情報を持たせる
- アプリでユーザーごとの設定を管理する
- 家計簿アプリで支出の記録をオブジェクトとしてまとめる
これはすべて「同じ型(クラス)から個別の実体(インスタンス=オブジェクト)を作る」仕組みがあるからこそできることです。
まとめ|まずはクラスから1つのインスタンスを作ってみよう
- クラス=設計図、インスタンス(オブジェクト)=その実体と覚えましょう
__init__()
やself
に戸惑っても、まずは使ってみることが大事です- Colabでコードを実行し、ChatGPTで意味を確認すれば初心者でも安心です
次回は、クラス同士の関係「継承」について解説します。引き続き一緒にPythonを楽しく学んでいきましょう!