Python : decorator

Python 2.4 から decorator (デコレーター)使えるらしい。
それに伴って、Django みたいなフレームワークでは、decorator を使う機会が出てきているので、覚えておきましょう。
ってことで、軽くメモ。
これって、Java でいう annotation(アノテーション)でしょう。
使い方も殆ど一緒だし。
ただ、Javaの方が色々出来る気がする。まあ、これからに期待かな?
簡単に言うと、function を装飾するための機能です。
装飾というだけあって、指定された属性に意味を追加するのに使う場合が多いです。
decorator.py
module の中のコメントに大体説明は書いておいたけれど
function を上書きするための機能みたいなものです。
機能を追加してみたり、 wrapper 関数で上書きしたりと、まあそんな感じのもの。
サンプルだと、DecSmp1 は、組み込み decorator で、static method を作ってます。
DecSmp2 は、自作の超簡単な decorator で static method を作ってます。
まあ、余り大した事してないけれどね〜
こういうのは、大きなシステム作るときに落になるように作るものであって、普通は余り自作しないんじゃないかなぁ〜
どうしても、関数に共通の加工を加えたい。っていう場面に出会ったら、自分も自作はするだろうけれど・・・
ん〜 Django だと、フィルターやタグを自作するときにこれを使います。
それの解説書こうと思っていたんだけれど、リポジトリ整理していたら時間がなくなった・・・w
いや、まだいけるか!? 明日金曜じゃん!! 急ぎの仕事もないし・・・うへへ
ってか、こんなこと書くと部長に仕事入れられそうだww
入れられて困る事はないんだけれど・・・

Leave a comment

1 Comments.

  1. [Python][Mercurial]巡回

    Windows版Python 2.5をインストールしてみた Python : decorator やっつけスクリプト Returns in python…

Leave a Reply


[ Ctrl + Enter ]

Spam Protection by WP-SpamFree