Sobre Python __doc__ Docstring
Pergunta
Eu quero mostrar a minha função, mas se eu usar assim
@cost_time
def func():
"define ...."
blabla
print func.__doc__
Ele não mostrará o Docstring, apenas porque eu uso um meta -programação complicado, como consertar isso?
Solução
Sua função embrulhada retornou do cost_time
decorador deve ter o docstring em vez de func
. Portanto, use functools.wraps
que define corretamente __name__
e __doc__
:
from functools import wraps
def cost_time(fn):
@wraps(fn)
def wrapper():
return fn()
return wrapper
Outras dicas
Usar functools.wraps()
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow