Articles of decorador

Java: memorización automática

Tengo algunas funciones en mi código en las que tiene mucho sentido (parece incluso obligatorio) usar la memorización. No quiero implementar eso manualmente para cada función por separado. ¿Hay alguna forma (por ejemplo, como en Python ) puedo usar una anotación o hacer otra cosa para obtener esto automáticamente en las funciones donde lo deseo?

Clase con registro de métodos basados ​​en decoradores.

Tengo una clase que tiene varios métodos, cada uno con ciertas propiedades (en el sentido de calidad). Me gustaría que estos métodos estén disponibles en una lista dentro de la clase para que puedan ejecutarse a la vez. Tenga en cuenta que las propiedades pueden ser intercambiables, por lo que esto no se puede resolver […]

¿Cómo escribo un decorador que restaura el cwd?

¿Cómo escribo un decorador que restaura el directorio de trabajo actual a lo que era antes de que se llamara la función decorada? En otras palabras, si uso el decorador en una función que hace un os.chdir() , el cwd no cambiará después de que se llame a la función.

Python Class Based Decorator con parámetros que pueden decorar un método o una función

He visto muchos ejemplos de decoradores de Python que son: Decoradores de estilo de función (envolviendo una función) decoradores de estilo de clase (implementando __init__ , __get__ y __call__ ) Decoradores que no toman argumentos. decoradores que toman argumentos decoradores que son “amigables con el método” (es decir, pueden decorar un método en una clase) […]

¿Cómo aplicar decoradores a las lambdas?

¿Hay alguna syntax para usar un decorador en una función lambda en Python? Ejemplo: def simpledecorator(f): def new_f(): print “Using a decorator: ” f() return new_f @simpledecorator def hello(): print “Hello world!” Resultados en esta salida: >>> hello() Using a simple decorator: Hello world! Sin embargo, cuando bash lo mismo con un lambda: @anotherdecorator f […]

¿Cómo reintentar urllib2.request cuando falla?

Cuando urllib2.request alcanza el tiempo de espera, se urllib2.URLError una excepción urllib2.URLError . ¿Cuál es la forma pythonica de volver a intentar establecer una conexión?

¿Puede un método ser un decorador de otro método de la misma clase?

Tengo una clase con un patrón de repetición aburrido en sus funciones y quería convertir este patrón en un decorador. Pero el problema es que este decorador debe acceder a algunos atributos de la instancia actual, por lo que quise convertirlo en un método en esta clase. Estoy teniendo algunos problemas con eso. Entonces, esto […]

Usando el mismo decorador (con argumentos) con funciones y métodos.

He estado tratando de crear un decorador que se pueda usar con ambas funciones y métodos en python. Esto por sí solo no es tan difícil, pero cuando se crea un decorador que toma argumentos, parece serlo. class methods(object): def __init__(self, *_methods): self.methods = _methods def __call__(self, func): def inner(request, *args, **kwargs): print request return […]

Cómo obtener todos los métodos de una clase de python con un decorador dado

¿Cómo obtener todos los métodos de una clase A dada que están decorados con el @ decorator2? class A(): def method_a(self): pass @decorator1 def method_b(self, b): pass @decorator2 def method_c(self, t=5): pass

¿Puedo parchar un decorador de Python antes de envolver una función?

Tengo una función con un decorador que estoy probando con la ayuda de la biblioteca de Python Mock . Me gustaría usar mock.patch para reemplazar el decorador real con un decorador de “bypass” simulado que simplemente llama a la función. Lo que no puedo entender es cómo aplicar el parche antes de que el decorador […]