¿Hay un análogo de C# para los decoradores de funciones de Python? Parece que es factible con los atributos y el marco de reflexión, pero no veo una forma de reemplazar funciones en tiempo de ejecución.decoradores de función en C#
Python decorators generalmente funciona de esta manera:
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"
Calling func1 y resultaría entonces func2 en
Before Function 1 After Before Function 2 After
La idea es que los decoradores me permiten agregar fácilmente tareas comunes en los puntos de entrada y salida de múltiples funciones.
Encontré esto una introducción interesante al por qué en lugar del qué. 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, esperaba algo ya integrado en el lenguaje, pero por las respuestas parece que no hay una forma directa de hacerlo sin agregar un nuevo marco. Mi proyecto es muy pequeño, así que probablemente sea excesivo hacerlo de esa manera. – jtjin