コース一覧
Pythonクラス・総合制作
完成と次のステップ

Pythonクラス・総合制作

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

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

Pythonクラス・総合制作

01クラス定義
02__init__とインスタンス変数
03メソッド
04__str__
05クラス変数
06dataclass
07オブジェクトと内包表記
08つくる クラスベース化
09第7章クイズ
10パッケージ構成に整理
11月次レポートv2
12動作チェックスクリプト
13自由拡張
14完成と次のステップ

Pythonクラス・総合制作

完成と次のステップ

このレッスンでできるようになること

作り上げた家計簿ツール v2 を振り返り、次にどの方向へ進むかを自分で選べるようになります。

何が変わったか

入門で作った家計簿は、1本のファイルに全部が入っていました。今の姿は次のとおりです。

プレーンテキスト

kakeibo/
    __init__.py
    models.py    Expense クラス
    report.py    月次レポート v2 と予算アラート
    storage.py   JSON での保存と読み込み
main.py
check.py         assert による動作チェック

道具ごとに、8章ぶんの積み上げを並べると次のようになります。

  • 第1章 — 機能を責務でファイルに分けた
  • 第2章 — タプルと Counter で、データの持ち方を選べるようにした
  • 第3章 — 集計のループを内包表記で書き直した
  • 第4章 — map や filter、sorted の key で抽出と変換をつないだ
  • 第5章 — 例外を設計し、どこで投げてどこで捕まえるかを決めた
  • 第6章 — CSV から JSON へ、保存の形式を移行した
  • 第7章 — 辞書を Expense クラスに置き換えた

機能が増えただけではなく、同じ機能をより良い形に書き直したという点が中級の中身です。現場のコードは、書く時間より読む時間と直す時間のほうが長くなります。書き直せることは、書けることと同じくらいの武器になります。

手元でもう一度動かしてみてください

この学習環境ではファイルを1本しか置けませんでした。手元のパソコンに Python を入れて、本当にフォルダを分けて置き直してみると、理解が固まります。

Python

from kakeibo.models import Expense
from kakeibo.report import monthly_report

expenses = [Expense("スーパー", 3200, "食費", "2026-08-01")]
for line in monthly_report(expenses, "2026-08"):
    print(line)

自分の実際の支出を入れてみるのが一番です。使ってみると、必ず欲しい機能が出てきます。そのときに前のレッスンでやった「入力と出力を先に決める」を思い出してください。

次に進む道

ここから先は、目的によって道が分かれます。

Web 開発へ進む — 家計簿をブラウザから使えるようにする方向です。Flask や FastAPI といった枠組みを使うと、今の report.py の関数をそのまま呼び出す形で画面が作れます。クラスとモジュールで整理してあることが、そのまま効いてきます。

データ分析へ進む — 支出データをもっと深く見る方向です。pandas を使うと、今回 Counter と内包表記で書いた集計が1行で書けます。ただし内側で何をしているかを知らずに使うと、結果の妥当性を判断できません。この8章はその下地です。

自動化へ進む — 銀行やカードの明細を自動で取り込む方向です。第6章の CSV と JSON、第5章の例外設計が土台になります。壊れたデータが来たときにどう振る舞うかを設計できることが、自動化では特に大事になります。

基礎を固める — アルゴリズムやコンピュータサイエンスの理論へ進む道もあります。計算量やデータ構造を知ると、「なぜ Counter は速いのか」といった問いに答えられるようになります。

どの道を選んでも、共通して効いてくるのは今回身に付けた3つです。責務でファイルを分けること、値を返す関数にすること、動作をコードで確かめること。この3つを持っている人が書いたコードは、半年後の自分にも読めます。

お疲れさまでした。まずは今日、自分の支出を1件、この家計簿に入れてみてください。

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

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

  • タプル順序付きで変更不可のシーケンス
  • ループ繰り返し処理。矢印で戻すか専用記号で示す
  • 内包表記for と if を 1 行で書く構文
  • 設計何をどう作るかを決める前工程
  • applicationJSON 本文を送るときの Content-Type
  • クラスデータと振る舞いを束ねる単位
  • ブラウザユーザーから見たWebのクライアント
  • 関数処理に名前を付けて再利用できる単位
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/07

関連レッスン

  • 自由拡張

    検索や予算アラートなど、欲しい機能を1つ設計して足します。

  • 動作チェックスクリプト

    assert で主要機能の確認を自動化します。

  • 月次レポートv2

    カテゴリ別と前月比を出すレポートを、中級の道具で作ります。

  • パッケージ構成に整理

    models と report に分け、実務で見かける構成に整えます。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。