
10
章 関数デコレータ
you are here
397
関数デコレータを作成する
395
ページの「デコレータ作成手順」の手順
1
に従い、新たな関数を作成します。
1
デコレータは関数
実際に、インタプリタから見たら、デコレータは既存関数を操作するとはいえ普通の関数
です。今後は、この既存関数をデコレートされる関数と呼びましょう。この本をここまで
読んできたので、関数の作成は簡単であることがわかっています。
Python
の
def
キーワー
ドを使うのです。
第
2
項目に従うには、デコレータが引数として関数オブジェクトを取るようにする必要があります。
2
デコレータは引数としてデコレートされる関数を取る
デコレータは引数としてデコレートされる関数を取る必要があります。そのためには、デ
コレータに関数オブジェクトとしてデコレートされる関数を渡すだけです。ここまでの
10
ページで取り組んできたので、これも簡単であることがわかっています。丸かっこなしで
(つまり、関数の名前だけを使って)関数を参照すれば関数オブジェクトになります。
デコレータを専用のモジュールに入れましょう(再利用がより簡単になります)。ま
ず、テキストエディタで新たなファイル
checker.py
を作成します。
checker.py
に新たなデコレータ
check_logged_in
を作成します。次の空欄
にデコレータの
def
行を書いてください。ヒント:関数オブジェクト引数の名前と
して
func
を使います。
ここにデコレータの
def
行を書きます。
Q
:
chec ...