Articles of decorador

Hilos con decoradores.

Estoy tratando de implementar subprocesos (con el uso de decoradores) en mi aplicación, pero no puedo entender algunas cosas sobre los lockings y la administración de subprocesos. import threading def run_in_thread(fn): def run(*k, **kw): t = threading.Thread(target=fn, args=k, kwargs=kw) t.start() return run class A: @run_in_thread def method1(self): for x in range(10000): print x @run_in_thread def […]

Decorador de python con matraz.

Necesito agregar un decorador de python a las funciones de ruta de Flask, (básicamente edité el código desde aquí ) def requires_admin(f): def wrapper(f): @wraps(f) def wrapped(*args, **kwargs): #if not admin: #return render_template(‘error.html’) return f(*args, **kwargs) return wrapped return wrapper y úsalo de esta manera estará bien: @app.route(‘/admin/action’) @requires_admin def AdminAction(): #NO error if NO […]

Ubicación de @classmethod

¿Dónde está el código fuente para el método de clase decorador ubicado en el código fuente de python? Específicamente, estoy teniendo problemas para encontrar el archivo exacto que está definido en la versión 2.7.2

Método de decoración (sobrecarga de métodos de clase)

Inspirado por la respuesta de Muhammad Alkarouri en ¿Cuáles son los buenos usos para las “anotaciones de funciones” de Python3 ? Quiero hacer este método multimethod para métodos, no para funciones normales. Sin embargo, cuando hago esto registry = {} class MultiMethod(object): def __init__(self, name): self.name = name self.typemap = {} def __call__(self, *args): types […]

¿Hay alguna manera de obtener la función que un decorador ha envuelto?

Supongamos que tengo @someDecorator def func(): ”’this function does something”’ print 1 Ahora, la func objeto es una instancia de someDecorator . ¿Hay alguna forma de acceder a la función que tiene, es decir, algo como func.getInnerFunction() ? Por ejemplo, si necesito recuperar la cadena de documentación de func() .

Decorador cambiando el estado de la función del método al funcionamiento

[Actualizado]: Responder en línea debajo de la pregunta Tengo un progtwig de inspección y uno de los objectives es que la lógica en un decorador sepa si la función que está decorando es un método de clase o una función regular. Esto está fallando de una manera extraña. A continuación se muestra el código ejecutado […]

¿Cómo crear un decorador de clase Python que pueda envolver métodos de instancia, clase y estáticos?

Me gustaría crear un decorador de clases de Python (*) que pueda envolver perfectamente todos los tipos de métodos que la clase pueda tener: instancia, clase y estática. Este es el código que tengo por ahora, con las partes que lo rompen comentó: def wrapItUp(method): def wrapped(*args, **kwargs): print “This method call was wrapped!” return […]

Forma preferida de definir propiedades en Python: decorador de propiedades o lambda?

¿Cuál es la forma preferida de definir las propiedades de clase en Python y por qué? ¿Está bien usar ambos en una clase? @property def total(self): return self.field_1 + self.field_2 o total = property(lambda self: self.field_1 + self.field_2)

El matraz golpeó al decorador antes de que se produzca una señal de petición.

Estoy usando Flask y el decorador before_request para enviar información sobre las solicitudes a un sistema de análisis. Ahora estoy tratando de crear un decorador que impida enviar estos eventos en algunas rutas. El problema con el que me estoy topando es hacer que llamen a mi decorador antes de que se dispare la señal […]

Implementando una propiedad de clase que preserva la cadena de documentos.

Tengo un descriptor que convierte un método en una propiedad en el nivel de clase: class classproperty(object): def __init__(self, getter): self.getter = getter self.__doc__ = getter.__doc__ def __get__(self, instance, owner): return self.getter(owner) Utilizado de esta manera: class A(object): @classproperty def test(cls): “docstring” return “Test” Sin embargo, ahora no puedo acceder al atributo __doc__ (lo cual […]