多重デコレート


Pythonでは関数定義の上の行に、@から始まる関数デコレータをつけることが出来ますが、
実は、というか、当然、というかデコレータは何重にもつけることも出来ます。


で、ふと、気になったのが、デコレータはどの順番で適用されるのか、ということです。

>>> def deco1(func):
...     print(1)
...     return func
...
>>> def deco2(func):
...     print(2)
...     return func
...
>>> @deco1
... @deco2
... def spam():pass
...
2
1
>>>


内側から順に適用されます。