これが引数を受け取るデコレータの動作原理ということ。以降は、デコレータを使わずに書いたパターンを示すことは基本的には省略する。デコレータが単なるシンタックスシュガーで、使わないパターンに必ず書き直せるという点は意識しながら読むと理解が深まると思う。デコレータの用途デコレータの基本が分かったところで、次は用途について考えてみる。デコレータの用途は、大きく分けて「ラッピング」と「マーキング」の二つがある。これまで紹介してきた内容は、用途が全て前者の「ラッピング」だった。ラッピングそれでは、まずラッピングの用途から見ていこう。これは、これまでにも紹介してきた通り元の関数などをデコレータを通して上書きするというもの。main()上記を保存して実行してみよう。関数は、計算結果を倍にして返すように上書きされる。6ラッピング用途での注意点ちなみに、ラッピング用途でデコレータを使うときは一つ注意点がある。それは、ラッピング用途のデコレータが、デコレートしたオブジェクトを代わりの何かで上書きするという性質に由来している。以下のサンプルコードを見てほしい。プロパティから取得して出力している。いう文字列が出力されてほしいはず。main()上記を保存して実行してみよう。いう出力になってしまった。ここまで読んできていれば、理由は何となく想像がつくと思う。関数に置き換えられてしまっている。関数のつもりで扱うと、実際には置き換えられた関数だった、ということが起こる。