Pregunta

quiero mostrar mi cadena de documentación de la función, pero si yo uso como esto

@cost_time
def func():
    "define ...."
    blabla
print func.__doc__

no se mostrará la cadena de documentación, sólo porque yo uso un poco de programación meta difícil, ¿cómo se puede solucionar este problema?

¿Fue útil?

Solución

Su función ajustada de regresar de la decoradora cost_time debe tener la cadena de documentación en lugar de func. Por lo tanto, utilizar functools.wraps que establece correctamente __name__ y __doc__:

from functools import wraps

def cost_time(fn):
    @wraps(fn)
    def wrapper():
        return fn()

    return wrapper

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top