コース一覧
    Pythonクラス・総合制作
    クラス定義

    Pythonクラス・総合制作

    クラスと総合制作を学び、Pythonの知識を組み合わせた小さなプログラムを完成できるようにします。

    1
    クラス入門
    01. クラス定義15分
    02. __init__とインスタンス変数15分
    03. メソッド15分
    04. __str__15分
    05. クラス変数15分
    06. dataclass15分
    07. オブジェクトと内包表記15分
    08. つくる クラスベース化20分
    09. 第7章クイズ10分
    2
    総合制作
    01. パッケージ構成に整理20分
    02. 月次レポートv220分
    03. 動作チェックスクリプト20分
    04. 自由拡張20分
    05. 完成と次のステップ10分

    クラス定義

    このレッスンでは、class 文で自分だけの型を定義し、そこからインスタンスを作れるようになります。

    辞書で持っていた支出をクラスにする

    第2章から第6章まで、支出1件はずっと辞書やタプルで持ってきました。{"name": "牛乳", "price": 158} のような形です。動きはしますが、キーの綴りを間違えても実行するまで気づけません。「税込金額を出す」といった処理も、データとは別の場所に散らばったままです。

    この章では、支出というデータと、支出に対する処理をひとまとめにした Expense という型を自分で作り、家計簿を辞書ベースからクラスベースへ移していきます。その第一歩が class 文です。

    class は設計図、インスタンスは実物

    クラスは「こういう形のものを作る」という設計図です。設計図から作った実物のことをインスタンス、またはオブジェクトと呼びます。

    Python

    class Expense:
        pass
    
    
    milk = Expense()
    print(type(milk).__name__)  # Expense

    class Expense: で設計図を宣言し、Expense() と呼ぶと実物が1つできます。pass は「中身はまだ書かない」という意味の文で、クラスの中を空にしたいときの置き場所です。

    属性にデータを持たせる

    インスタンスにドットでくっつけた変数を属性と呼びます。辞書のキーに近いものですが、milk.name のように書けます。

    Python

    milk = Expense()
    milk.name = "牛乳"
    milk.price = 158
    print(milk.name, milk.price)  # 牛乳 158

    インスタンスはそれぞれ別の入れ物なので、bread = Expense() を作って bread.name を入れても milk.name は影響を受けません。ここが辞書を毎回コピーしていた頃との違いです。

    なお、このように外から属性を1つずつ足すやり方は、書き忘れが起きやすい書き方です。次のレッスンで __init__ を使い、作った時点で必ず値が入っている形に直します。今回はまず、クラスから実物を作って属性を読み書きする感覚をつかんでください。

    要件

    1. Expense クラスからインスタンスを1つ作ること
    2. 作ったインスタンスに name と price の属性を入れること
    3. 属性を読んで「牛乳 158円」の形の文字列を返すこと

    ヒント

    インスタンスは Expense() で作れます

    属性は expense.name = name のようにドットで代入します

    文字列は f"{expense.name} {expense.price}円" の形で組み立てられます

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/07

    関連レッスン

    • __init__とインスタンス変数

      __init__ で初期化を定義し、品名・金額・日付を持たせます。

    • メソッド

      税込金額を返すメソッドを書き、データと処理をまとめます。

    • __str__

      __str__ を定義して、print したときの表示を決めます。

    • クラス変数

      クラス変数で消費税率を全体から共有します。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • インスタンスクラスから生成された実体
    • クラスデータと振る舞いを束ねる単位
    • タプル順序付きで変更不可のシーケンス
    • 処理計算や代入を表す長方形
    • 設計何をどう作るかを決める前工程
    • オブジェクトキーと値のペアで構造を作るデータ
    • 属性インスタンス属性=各インスタンス固有の値(self.name)。
    • 変数データに名前をつけて参照する仕組み
    main.py
    エディタを読み込んでいます

    メモ

    クラス定義

    ⌘S で保存