差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン両方とも次のリビジョン | ||
python:decorator [2011/06/19 22:38] – [引数を必要とするデコレータ] ともやん | python:decorator [2019/08/19 07:02] – ともやん | ||
---|---|---|---|
行 122: | 行 122: | ||
デコレータを関数として実行する場合、上記と等価なコードは以下のようになる。 | デコレータを関数として実行する場合、上記と等価なコードは以下のようになる。 | ||
<code python> | <code python> | ||
- | # _func_infoを生成 | + | # func_info(add) |
- | print func_info(add) | + | # 以下は |
- | # _func_infoに引数(1, 2)を与えて実行 | + | |
print func_info(add)(1, | print func_info(add)(1, | ||
</ | </ | ||
行 225: | 行 224: | ||
return _func_info | return _func_info | ||
</ | </ | ||
+ | デコレータの引数(inc_docにTrue)を指定してデコレートする。 | ||
<code python> | <code python> | ||
# デコレートされた関数を定義 | # デコレートされた関数を定義 | ||
行 249: | 行 249: | ||
デコレータを関数として実行する場合、上記と等価なコードは以下のようになる。 | デコレータを関数として実行する場合、上記と等価なコードは以下のようになる。 | ||
<code python> | <code python> | ||
- | # __func_infoを取得 | + | # func_info(True) |
- | # func_info(True) | + | # func_info(True)(add) |
- | # _func_infoを取得 | + | # _func_info(add) は __func_info を返すので |
- | # func_info(True)(add) | + | # 以下は __func_info(1, 2) を実行しているのと等価 |
- | # _func_infoに引数(1, 2)を与えて実行 | + | |
print func_info(True)(add)(1, | print func_info(True)(add)(1, | ||
</ | </ |