Pythonのデコレーターとは
経緯
プログラミングに関して教えていたところPythonのデコレーターってなんやねんって聞かれたのでメモ
デコレーターとは
ある関数があったらそれを修飾して使えるようにするって概念がデコレーターで、これを使うことで、既存の関数の処理の前後に自分の好きな処理を付け加えることができるのがメリットだと思う。
そうすると、どっかのライブラリが提供している関数を呼んだときに自動的に実行される処理を追加できるとか、そういう便利なことができる概念って感じ。
使い道
なので使い道として例をあげると、
ある適当な文字列から、記号をのぞいて、大文字の英字列が欲しいなぁって気分だとしよう。
( men:ta%:abc
から MENTAABC
を取得したいってこと)
んで、どっかのライブラリが文字列から記号を消して文字だけを返してくれる機能を提供しているとして、それを使うと
men:ta%:abc
から mentaabc
が取得できる。
それに、文字列を大文字に変換する関数デコレーターを作って
mentaabc
から MENTAABC
が手に入ってやったねって感じ。
こんな感じに、自分でライブラリを拡張するみたいな感覚で使ったりする
追記
開始時間と終了時間をログに出す処理のデコレータを作成して、対象の処理複数個にあてるてのも使いどころとしてあると、おしえてもらった。
めっちゃ便利や.