i want to show docstring of my function, but if i use like this
@cost_time
def func():
"define ...."
blabla
print func.__doc__
it will not show the docstring,just because i use some meta programming tricky, how can fix this?
Your wrapped function returned from the cost_time
decorator must have the docstring instead of func
. Therefore, use functools.wraps
which correctly sets __name__
and __doc__
:
from functools import wraps
def cost_time(fn):
@wraps(fn)
def wrapper():
return fn()
return wrapper
Use functools.wraps()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With