Preguntas etiquetadas con decorator

Decorator es un patrón de diseño orientado a objetos que permite agregar comportamiento a clases existentes de manera dinámica. Es uno de los patrones de diseño estructural de Gang of Four.

946
Crear un singleton en Python

Esta pregunta no es para la discusión de si el patrón de diseño único o no es deseable, es un antipatrón o para cualquier guerra religiosa, sino para discutir cómo este patrón se implementa mejor en Python de la manera más pitónica. En este caso, defino 'más pitónico' para que signifique que sigue...

651
¿Qué hace functools.wraps?

En un comentario sobre esta respuesta a otra pregunta , alguien dijo que no estaba seguro de lo que functools.wrapsestaba haciendo. Entonces, hago esta pregunta para que haya un registro de ella en StackOverflow para referencia futura: ¿qué hace

401
Decoradores con parámetros?

Tengo un problema con la transferencia de la variable 'insurance_mode' por el decorador. Lo haría con la siguiente declaración de decorador: @execute_complete_reservation(True) def test_booking_gta_object(self): self.test_select_gta_object() pero desafortunadamente, esta afirmación no...

207
¿Cómo implementar un decorador mecanografiado?

TypeScript 1.5 ahora tiene decoradores . ¿Podría alguien proporcionar un ejemplo simple que demuestre la forma correcta de implementar un decorador y describir lo que significan los argumentos en las posibles firmas de decorador válidas? declare type ClassDecorator = <TFunction extends...

140
Decoradores Python en clases

¿Se puede escribir algo como: class Test(object): def _decorator(self, foo): foo() @self._decorator def bar(self): pass Esto falla: self in @self es desconocido También probé: @Test._decorator(self) que también falla: prueba desconocida Me gustaría cambiar temporalmente algunas...

129
¿Cómo decorar una clase?

En Python 2.5, ¿hay alguna forma de crear un decorador que decore una clase? Específicamente, quiero usar un decorador para agregar un miembro a una clase y cambiar el constructor para tomar un valor para ese miembro. Buscando algo como lo siguiente (que tiene un error de sintaxis en 'class...