Pythonの関数デコレータのC#アナログはありますか?属性やリフレクションフレームワークではうまくいくと感じていますが、実行時に関数を置き換える方法はありません。関数デコレータ(C言語)#
Python decoratorsは、一般的にこのように動作:
class decorator(obj):
def __init__(self, f):
self.f = f
def __call__(self, *args, **kwargs):
print "Before"
self.f()
print "After"
@decorator
def func1():
print "Function 1"
@decorator
def func2():
print "Function 2"
関数func1とfunc2のを呼び出すと、その後、アイデアはデコレータは私が簡単に入口と出口のポイントでの一般的なタスクを追加できるようになるということです
Before Function 1 After Before Function 2 After
につながります複数の機能の
私はこれをなぜ、何に反対するのかという興味深いイントロを見つけました。 http://python.about.com/gi/dynamic/offsite.htm?zi=1/XJ&sdn=python&cdn=compute&tm=12&f=10&su=p284.9.336.ip_p504.1.336.ip_&tt=29&bt=0&bts=1&zu=http %3A // www.python.org/doc/2.4.4/whatsnew/node6.html – ShuggyCoUk
うーん、私は言語に既に組み込まれているものを期待していましたが、それは簡単な方法はないようですそれは新しいフレームワークを追加することなく。私のプロジェクトは非常に小さいので、それはおそらくそれをやりすぎるだろう。 – jtjin