コース一覧
    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分

    メソッド

    このレッスンでは、クラスの中に関数を書いて、データと処理を1か所にまとめられるようになります。

    処理がデータから離れている問題

    これまでは税込金額を出すために、支出とは別の場所に関数を置いていました。

    Python

    def tax_included(expense):
        return int(expense["price"] * 1.1)

    この形だと、支出のデータ構造を変えたときに、離れた場所にある関数も一緒に直す必要があります。支出そのものが税込金額の出し方を知っていれば、直す場所は1か所で済みます。

    メソッドはクラスの中の関数

    クラスの中に def で書いた関数をメソッドと呼びます。第1引数は __init__ と同じく self で、そのインスタンス本人が入ります。

    Python

    class Expense:
        def __init__(self, name, price):
            self.name = name
            self.price = price
    
        def total(self):
            return int(self.price * 1.1)
    
    
    milk = Expense("牛乳", 158)
    print(milk.total())  # 173

    milk.total() と呼ぶと、self には milk が入ります。だからメソッドの中では self.price で自分の金額を読めます。引数を書いていないのに動くのは、self を Python が渡しているからです。

    金額は整数に丸めてから返す

    消費税率の 1.1 は float なので、掛け算の結果には 173.8 のような端数や、462.00000000000006 のような誤差が出ます。金額をそのまま画面に出すと読みにくいので、int() で整数に落としてから返します。int() は小数点以下を切り捨てるので、円未満切り捨ての計算とちょうど同じ意味になります。

    引数を取るメソッドも書ける

    self の後ろに引数を足せば、呼ぶときに値を渡せます。

    Python

        def over(self, limit):
            return self.price >= limit

    milk.over(500) のように呼びます。データを持っている本人に判断を任せられるので、呼ぶ側のコードが短くなります。

    要件

    1. total は self.price に 1.1 を掛けた値を int で整数に丸めて返すこと
    2. tax_included は Expense を作り、その total メソッドを呼んだ結果を返すこと
    3. 戻り値は整数にすること

    ヒント

    メソッドの第1引数は self です

    int(self.price * 1.1) で円未満を切り捨てられます

    メソッドは expense.total() のように呼びます

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

    関連レッスン

    • __str__

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

    • クラス変数

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

    • dataclass

      dataclass で定型のクラスを短く書き直します。

    • オブジェクトと内包表記

      内包表記で属性を見て、高額な Expense だけを抽出します。

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

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

    • クラスデータと振る舞いを束ねる単位
    • 関数処理に名前を付けて再利用できる単位
    • 処理計算や代入を表す長方形
    • データ構造データを効率的に格納・操作するための方法。
    • メソッドクラスに属する関数
    • 引数位置引数=順番で渡す。
    • インスタンスクラスから生成された実体
    • 判断YES/NO 分岐を表す菱形
    main.py
    エディタを読み込んでいます

    メモ

    メソッド

    ⌘S で保存