decir que tengo una clase:Python añadir dinámicamente decorador a la clase métodos mediante la decoración de la clase
class x:
def first_x_method(self):
print 'doing first_x_method stuff...'
def second_x_method(self):
print 'doing second_x_method stuff...'
y este decorador
class logger:
@staticmethod
def log(func):
def wrapped(*args, **kwargs):
try:
print "Entering: [%s] with parameters %s" % (func.__name__, args)
try:
return func(*args, **kwargs)
except Exception, e:
print 'Exception in %s : %s' % (func.__name__, e)
finally:
print "Exiting: [%s]" % func.__name__
return wrapped
¿cómo voy a escribir otro decorador otherdecorator
de modo que:
@otherdecorator(logger.log)
class x:
def first_x_method(self):
print 'doing x_method stuff...'
def first_x_method(self):
print 'doing x_method stuff...'
lo mismo que
class x:
@logger.log
def first_x_method(self):
print 'doing first_x_method stuff...'
@logger.log
def second_x_method(self):
print 'doing second_x_method stuff...'
hecho o de reemplazar
@otherdecorator(logger.log)
class x:
con
@otherdecorator
class x:
donde otherdecorator contiene toda la funcionalidad (no soy una persona pitón así que se gentil)
¿Qué versión de Python estás utilizando? – detly
2.6 y Iron Python (clr 4.0/dlr) –