Python 2.4 の正式バージョンが出ましたので、新機能
のレビューなんぞしてみたいと思います。
まずは、デコレータ(修飾子)。
「そもそもデコレータってナニ?」な私には、目鱗な
機能です。
簡単に言えばこういうことらしい・・・です。
<デコレータの書き方>
@deco
def func(arg...):
...
<意味>
func = deco(func)
なんのこっちゃ? ですが、よくよく考えてみると、
前バージョンで登場したクラスメソッドなんかにはうっ
てつけでしょう。
<前バージョンの書き方>
def meth(self,arg...):
...
meth = classmethod(meth)
<2.4以降>
@classmethod
def meth(self, arg...):
...
おお、すっきりした☆
あと、初期値が必要な関数なんかに、初期値を渡すの
も簡単です。
def deco(func):
func.v0 = 100
func.v1 = 200
func.v2 = 400
return func
@deco
def f0():
return f.v0 + f.v1 * f.v2
@deco
def f1():
return f.v0 * f.v1 + f.v2
ちなみに、デコレータ名は普通の関数名ですから、モ
ジュールインポート風 (@module.func) でも、メソッド
風 (@object.method) でも、クラスメソッド風
(@classname.method) でも可能です(試してみました☆)
なお、デコレータを @a @b @c と並べると、
a(b(c(func))) という扱いなるそうな。
使い方、工夫次第で面白く使えそうな機能でもはあり
ますので、色々考えてみようかと思います。
/機械伯爵/