メリークリスマス!全然関係ないけどデコレータの記事頑張って書きました。 できるだけわかりやすいように意識して書いたつもりです。 基本デコレータって何「関数の処理を修飾(デコレート)する」、つまり関数の前後に処理を付け加える技術という説明が多いように思います。 決して間違ってはいませんが、私は正確ではないと思っています。 多くの人が思っている以上にデコレータとは簡単なものです。あまり難しく考えないでください。 デコレータの動作を一言で表すなら単に 対象オブジェクトを差し替える 技術です。 デコレータであるための条件「引数を1つ受け取る呼び出し可能オブジェクト」がデコレータの最小の要件です。 以下を見てください。 >>> # このように「何もしない」かつ「何も返却しない」関数でも >>> def deco(f): ... pass >>> # 定義時にエラーは出ない。つまりデコレータとしての要