タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

pythonとclosureとdecoratorに関するishideoのブックマーク (3)

  • ishideoのブックマーク / 2009年1月14日 - はてなブックマーク

    Pythonでプログラムを書いていると、よく関数の中で関数を作ることがあります。 Python はクロージャに対応していて、関数の中で作られた関数は、外側の関数のローカル変数を参照することができます。 クロージャが一番役に立つ場面がデコレータです。次の例では、引数を取るデコレータを作るために関数内関数を2段階作成し、それぞれのローカル変数を一番内側から参照しています(このプログラムは、Python 2.6とPython 3.0の両方で動きます⁠)⁠。 リスト1 # coding: utf-8 from __future__ import print_function import sys def log(out=sys.stderr): def decorator(func): name = func.__name__ def decorated(*args, **kwargs): ###

  • 第1回 nonlocalでクロージャが便利に | gihyo.jp

    Pythonでプログラムを書いていると、よく関数の中で関数を作ることがあります。 Python はクロージャに対応していて、関数の中で作られた関数は、外側の関数のローカル変数を参照することができます。 クロージャが一番役に立つ場面がデコレータです。次の例では、引数を取るデコレータを作るために関数内関数を2段階作成し、それぞれのローカル変数を一番内側から参照しています(このプログラムは、Python 2.6とPython 3.0の両方で動きます⁠)⁠。 リスト1 # coding: utf-8 from __future__ import print_function import sys def log(out=sys.stderr): def decorator(func): name = func.__name__ def decorated(*args, **kwargs): ###

    第1回 nonlocalでクロージャが便利に | gihyo.jp
  • Python decorator

    python のデコレーター構文 @decorate 解り難い @decorate 構文 Python のデコレーターは理解するのが厄介です。Python のデコレーターは syntax sugar の機能と closure の機能の二つを使って関数オブジェクトを修飾する構文です。でも closure の概念がない C/C++Java などの 言語から python も使うようになった者に、三重にネストした関数と @decorator 構文を組み合わせたコード例を使って解説されたのでは脳みそが沸騰するだけです。 私は @decorator を使ったコード例の python virturla machine コードを追跡することで、やっとこさデコレーターを理解しました。私の味わされた苦労を軽減してもらうため、この web page をまとめてみます。 デコレーターを理解した後で考え直し

  • 1