カテゴリ: Python 更新日: 2026/03/11

Pythonのクラスとは?基本の定義とインスタンスの作成方法を初心者向けに解説

Pythonのクラスとは?基本の定義とインスタンスの作成方法
Pythonのクラスとは?基本の定義とインスタンスの作成方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonで“クラス”ってよく聞きますけど、いったい何なんですか?」

先生

「いい質問ですね。Pythonのクラスは、簡単に言うと“設計図”のようなものなんですよ。」

生徒

「設計図?それってどういう意味ですか?」

先生

「たとえば“犬”というものを考えてみましょう。犬の名前や年齢、吠えるという行動をまとめたもの、それがクラスなんです。」

生徒

「なるほど…。でも実際にPythonでどう書くのかも知りたいです!」

先生

「それでは、Pythonのクラスの基本とインスタンスの作り方を、一緒に学んでいきましょう!」

1. Pythonのクラスとは何か?:初心者向けの基本概念

1. Pythonのクラスとは何か?:初心者向けの基本概念
1. Pythonのクラスとは何か?:初心者向けの基本概念

Python(パイソン)のクラスとは、一言でいうと「オブジェクトを作るための設計図」です。プログラミングの世界では、データ(属性)と処理(メソッド)を一つのセットにして管理する「オブジェクト指向」という考え方が主流ですが、その核となるのがこのクラスという仕組みです。

「設計図」と言われてもピンとこないかもしれません。身近な例で考えてみましょう。例えば、「鯛焼きの焼き型」をイメージしてください。

  • クラス: 鯛焼きの「焼き型」(形や大きさを決めるもの)
  • インスタンス: 焼き型から作られた「本物の鯛焼き」(あんこ味、カスタード味など)

このように、一度「焼き型(クラス)」を作ってしまえば、中身の味を変えるだけで、同じ形の鯛焼き(インスタンス)を何個でも効率よく作ることができますよね。Pythonのクラスも、複雑なプログラムを整理し、同じような機能を持つパーツを量産するために欠かせない存在なのです。

まだイメージが湧かない方のために、非常にシンプルな構造をコードで見てみましょう。中身の細かい書き方は後の章で詳しく解説しますが、まずは「枠組み」だけ確認してください。


# これが「設計図(クラス)」の最小構成です
class Taiyaki:
    # 鯛焼きが持つデータや振る舞いをここに書いていく
    pass

# 設計図から実体(インスタンス)を作成する
anko_taiyaki = Taiyaki()

このように、class クラス名: と書くことで、独自の新しい型を作ることができます。Pythonのクラスを活用できるようになると、バラバラだった変数や関数が「一つの意味を持ったまとまり」として扱えるようになり、大規模な開発でも迷子にならない、綺麗でメンテナンスしやすいコードが書けるようになります。

2. Pythonのクラスを定義する方法:設計図を作ってみよう

2. Pythonのクラスを定義する方法:設計図を作ってみよう
2. Pythonのクラスを定義する方法:設計図を作ってみよう

Pythonでプログラミングをする際、「クラス」はよく「設計図」に例えられます。例えば、本物の犬を作ることはできませんが、プログラムの中で「名前」や「年齢」というデータを持った「犬という仕組みの設計図」を作ることはできます。

クラスを定義するには、classというキーワードを使います。クラス名は「何を表すものか」がひと目でわかる英語の名前にし、最初の文字を大文字にするのが慣例(パスカルケース)です。まずは、最もシンプルな犬の設計図を見てみましょう。


class Dog:
    # インスタンス化するときに自動で呼ばれる初期化メソッド
    def __init__(self, name, age):
        self.name = name  # 犬の名前を保存する(属性)
        self.age = age    # 犬の年齢を保存する(属性)

    # 犬の動作を定義するメソッド
    def bark(self):
        print(f"{self.name}({self.age}歳)が「ワンワン!」と吠えました。")

この短いコードの中には、クラスを理解するための重要なポイントが凝縮されています。未経験の方でも、まずは以下の3点だけ押さえておけば大丈夫です。

  • __init__(コンストラクタ): クラスから「実体(インスタンス)」を作るとき、最初に一度だけ自動で実行される特別な処理です。ここで名前や年齢などの初期設定を行います。
  • self(セルフ): 「自分自身」を指す合言葉です。これをつけることで、クラスの中で「この犬の名前」や「この犬の年齢」を自由に呼び出すことができるようになります。
  • メソッド: クラスの中に書かれた関数のことです。上記の例ではbark(吠える)がメソッドにあたり、そのクラスが「どんな振る舞いをするか」を定義します。

このように、データ(属性)と処理(メソッド)をひとまとめにするのが、Pythonにおけるクラス定義の基本形です。

3. クラスからインスタンスを作るとは?

3. クラスからインスタンスを作るとは?
3. クラスからインスタンスを作るとは?

インスタンスとは、「クラスから作られた実際のモノ」のことです。たとえば、クラスDogは設計図ですが、そこから作った「ポチ」や「タロウ」などの実物がインスタンスです。

では、さっきのDogクラスからインスタンスを作ってみましょう。


dog1 = Dog("ポチ", 3)
dog2 = Dog("タロウ", 5)

dog1.bark()
dog2.bark()

ポチ がワンワンと吠えています!
タロウ がワンワンと吠えています!

このようにして、クラスをもとに「いろいろな個体(インスタンス)」を簡単に作ることができます。まるで「型」を使って商品をどんどん作る工場のようですね!

4. クラスを使うメリットとは?

4. クラスを使うメリットとは?
4. クラスを使うメリットとは?

クラスを使うことで、次のようなメリットがあります。

  • 同じ種類のデータと機能をまとめて管理できる
  • 再利用しやすくなる
  • プログラムが整理されて読みやすくなる

たとえば、ゲームを作る場合、「キャラクター」や「アイテム」などをクラスで管理すれば、追加や変更もラクになります。

5. 初心者がつまずきやすいポイントと対策

5. 初心者がつまずきやすいポイントと対策
5. 初心者がつまずきやすいポイントと対策

Pythonのクラスで初心者がよくつまずくのが、「selfって何?」や「__init__ってどう使うの?」といった部分です。

selfは「そのクラスの中で、自分自身を指すキーワード」で、クラスの中で属性(変数)やメソッドにアクセスするときに必ず使います。

__init__は「クラスからインスタンスを作るときに最初に呼ばれる関数」で、「初期化(しょきか)」の意味があります。

最初は少し難しく感じるかもしれませんが、「クラス=設計図」「インスタンス=実物」と覚えておけば、だんだん慣れていきますよ!

6. 実生活の例で理解しよう:お弁当のクラス

6. 実生活の例で理解しよう:お弁当のクラス
6. 実生活の例で理解しよう:お弁当のクラス

プログラムを難しく感じる人は、実生活に置き換えて考えてみると理解が深まります。

たとえば「お弁当」のクラスを考えてみましょう。


class Bento:
    def __init__(self, main, side):
        self.main = main
        self.side = side

    def show(self):
        print(f"メイン:{self.main}、おかず:{self.side}")

bento1 = Bento("ハンバーグ", "ポテトサラダ")
bento2 = Bento("焼き魚", "ひじき")

bento1.show()
bento2.show()

メイン:ハンバーグ、おかず:ポテトサラダ
メイン:焼き魚、おかず:ひじき

このように、同じBentoクラスから、いろいろなお弁当を作ることができます。

実物にたとえると、クラスは「お弁当箱の型」で、インスタンスは「その型で作ったお弁当」なんです。

7. Pythonのクラスを活用するために覚えたいキーワード

7. Pythonのクラスを活用するために覚えたいキーワード
7. Pythonのクラスを活用するために覚えたいキーワード

この記事では「クラス」「インスタンス」「self」「__init__」といった言葉が出てきました。どれもPythonでオブジェクト指向プログラミングを行う上でとても大切です。

  • クラス(class):設計図
  • インスタンス:クラスから作られた実体
  • self:自分自身を指す
  • __init__:最初に呼び出される関数(初期化)

プログラミング未経験でも、こうした言葉を身近な例で覚えていくことで、Pythonの世界が少しずつ広がっていきます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
PythonでREST APIを作る方法!初心者向けFastAPI入門|Python API開発の基本
New2
PHP
PHPのコード品質向上ツール完全解説!PHPStan(ピーエイチピースタン)とPHPCS(ピーエイチピーシーエス)で初心者でも安全にデバッグしよう
New3
Python
Pythonでデータベースのログを記録・監視する方法を完全解説!初心者向けデータベースログ管理入門
New4
PHP
PHPのログファイルを活用したエラートラッキング完全ガイド|初心者でもわかるPHPデバッグ入門
人気記事
No.1
Java&Spring記事人気No1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.2
Java&Spring記事人気No2
Python
Pythonのインストール&環境構築!Windows・Mac・Linuxでの手順を初心者向けに解説
No.3
Java&Spring記事人気No3
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.6
Java&Spring記事人気No6
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonでデータベースの接続プールを使う方法を徹底解説!初心者向けPythonデータベース接続プール入門
No.8
Java&Spring記事人気No8
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い