エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【python】今度こそ理解できるデコレータの動き②引数を受け取るデコレータ - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【python】今度こそ理解できるデコレータの動き②引数を受け取るデコレータ - Qiita
def foo(b): pass def deco(a): print(a) return foo @deco(a="hello") def test(): pass # 実行結果 # ... def foo(b): pass def deco(a): print(a) return foo @deco(a="hello") def test(): pass # 実行結果 # hello 1行ずつ見ていきます。 1~6行目は関数を定義しているだけなので何も起きません。 8行目の@deco(a="hello")に到達すると、はじめに deco(a="hello")が実行されます。 4~6行目関数decoが実行され、aに"hello"が渡されると文字列helloが出力されます。 そして関数fooを返します。 頭の中は↓のような感じです。 @deco(a="hello")の deco(a="hello")が実行されて関数fooが返るから、 deco(a="hello")はfooと置き換わり、8行目は@fooになった。 ここまでをまとめると、 コードが@deco(引数)に到達すると、de