Czy istnieje analog C# dla dekoratorów funkcji Pythona? Wydaje się, że jest to możliwe dzięki atrybutom i strukturze refleksji, ale nie widzę sposobu na zastąpienie funkcji w czasie wykonywania.funkcja dekoratorów wC#
Python decorators generalnie działa w ten sposób:
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"
Wywołanie func1 i func2 by następnie doprowadzić
Before Function 1 After Before Function 2 After
Chodzi o to, że dekoratorzy pozwoli mi łatwo dodać typowych zadań na punktach wejścia i wyjścia wielu funkcji.
Znalazłem to interesujące wprowadzenie do tego, dlaczego w przeciwieństwie do tego, co. 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
Hmm, liczyłem na coś, co już zostało wbudowane w język, ale z odpowiedzi wynika, że nie ma prostego sposobu na zrobienie tego. bez dodawania nowej struktury. Mój projekt jest bardzo mały, więc prawdopodobnie jest to przesadą. – jtjin