組み込み開発のためのPython · レッスン 83 / 220

デコレーターで関数を拡張する

デコレーターは関数を受け取り、機能を追加した関数を返します。ログや計測の共通化に使えますが、隠れた副作用や例外変換を増やさないようにします。

デコレーターは関数を受け取り、機能を追加した関数を返します。ログや計測の共通化に使えますが、隠れた副作用や例外変換を増やさないようにします。 このページでは、構文だけでなく、入力の検証と再現可能な確認方法も扱います。

考え方と使いどころ

デコレーターは関数を受け取り、機能を追加した関数を返します。ログや計測の共通化に使えますが、隠れた副作用や例外変換を増やさないようにします。

組み込み開発での注意点

一つの処理を小さな関数に分け、入力条件・戻り値・例外を明確にすると、機器なしの試験が容易になります。

コード例

手元のPython環境に貼り付ける前に、使用しているPythonの版と対象ライブラリの対応を確認してください。

def within_limits(value: int, low: int, high: int) -> bool:
    if low > high:
        raise ValueError("範囲の指定が逆です")
    return low <= value <= high

print(within_limits(3290, 0, 5000))

手を動かす課題

実行時間を記録するデコレーターを作り、例外時にも計測結果が残ることを確認してください。

参考資料

「関数・反復・標準ライブラリ」の章一覧へ