質問させてください｡
このhello関数が実際にパラメータを取ったらどうなるのでしょうか？
仮に文字列とします｡
挨拶でもいい｡
そして､ ここに挨拶文が印刷されることになった｡
とりあえずバイは外そう｡
これって走っても大丈夫なんでしょうか？
もしもし？
ビデオを一時停止して､ 考えてみてください｡
調べてみよう｡
いや､ そうではない｡
それはエラーです｡
ここでビデオを一時停止してみて､ どうすればこれが引数を許すようになるのか､ 解決できるかどうか､ 試してみてください｡
この5行目に書いてありますね｡
5行目と書いてありますね｡
なぜなら､ 実際にhelloを呼び出すときには､ パラメータがあることを想定しているからです｡
しかし､ ここではそれに論拠を与えていない｡
どうすれば解決できるのか？
まあ､ 一つの方法は､ ただ単純に言ってみることです｡
欲張りでしょう？
あるいは､ 好き勝手なことを言うこともできます｡
Xと言いながら､ こうも言えるのです｡
ラッパー関数がパラメータを受け取ります｡
実行をクリックすると､ そうなるように｡
ふむ｡
13行目がエラーになりました｡ 今､ 実際に挨拶をする必要があるので､ Runをクリックしたら挨拶をしてみましょう｡
わかりました｡
これが効くんです｡
そして､ これが意味を持つことを願っています｡
そうですね｡
呼んでいます｡
こんにちは｡
とともに｡
こんにちは｡
そこでこの機能｡
ハローは通り過ぎる｡
では､ 私たちは？
引数として右xを受け取る｡
フードの下に私のデコレーターがイコール私のデコレーターと言っていることを忘れないでください｡
そして､ こんにちは｡
そうですね｡
つまり､ 私たちがやっているのは､ 私のデコレーターを動かすことだけなのです｡
もしもし？
それが今や､ ラップの機能になっている｡
そして､ rapt関数であるAを実行すると､ 引数にhighが与えられる｡
そこで､ rapt関数はこのパラメータを受け取ってから､ 関数を実行します｡
こんにちは｡
しかし､ ここで疑問が......挨拶文にも絵文字が使えるとしたら？
印刷､ 挨拶､ そして絵文字というわけです｡
ふむ｡
どうする？
さて､ また別のパラメータを作り､ さらに別のパラメータを作り､ ここで､ 例えばスマイル・フェイスで呼び出す必要があります｡
実行」をクリックすると
まあ､ これは文字列のはずです｡
実行」をクリックすると
これはこれで有効なのですが､ パラメータを変更する必要があるたびに慌ただしくなってしまいます｡
まあ､ これは改造しないといけないんですけどね｡
といったキーワードの引数があったらどうでしょう｡
デフォルト｡
こんにちは｡
実は､ ここにパターンがあって､ それを使えば､ 物事を本当に簡単にすることができるんです｡
そして､ すべての位置の引数を取るスターアークと､ すべてのキーワードの引数を取るスターキーワードアークを行い､
関数を呼び出すというものです｡
すべての位置引数をアンパックするシング・スターアークと､ すべてのキーワード引数をアンパックするスター・スターキーワードアークがあります｡
さて､ わかりにくいと思われるかもしれませんが､ ご安心ください｡
これは､ コピー＆ペーストして覚えておくだけのパターンです｡
しかし､ 今度はこれをご覧ください｡
絵文字イコール､ 例えば悲しい顔ということができるんです｡
キーワード引数として｡
そして今､ 私が合格すれば
こんにちは｡
こんな感じで､ ヒットラン｡
そして､ これも削除してしまいましょう｡
必要ないので､ デコレータがあるからちゃんとhelloを呼んで､ 実行をクリックします｡
あれを見てください｡
悲しい顔でハイになる｡
さて､ これがデコレーターと呼ばれる所以は､ プログラミングの有名なパターンであるからです｡
デコレーターパターンと呼ばれるものです｡
そして､ これがデコラティブパターンです｡
これにより､ デコレータに柔軟性が生まれ､ スターアークやキーワードアークを使ってrapt関数に好きなだけ引数を渡すことができ､
関数内でこのようにアンパックすることができるようになります｡
この構文があるからこそ､ デコレータは強力なのです｡
これらのコードを使うだけで､ 関数を装飾するデコレーターパターンを使って機能を追加することができます｡
そして､ デコレーターパターンは､ プログラミングのあらゆるところで使われています｡
だから､ とてもとても強力なコンセプトなのです｡
Decoratorのレッスンの仕上げに｡
今回は､ デコレータがどのように役立つのか､ また､ コードの中でデコレータのパターンをよく目にする場所についてお話します｡
また､ 関数のパフォーマンスや速度を教えてくれる独自のパフォーマンス・デコレータを作成する予定です｡
そして､ それが終わるころには､ ビデオ・デコレーターがあなたにとって意味のあるものになり､ 他の人や他の友人に､
なぜ私たちのプログラムでデコレーターを使うべきなのかを説明できるようになることを､ 私は約束します｡
その中でお会いしましょう｡
バイバイ｡