О Python __doc__ DOCSTRING
Вопрос
Я хочу показать Docstring мою функцию, но если я буду использовать так
@cost_time
def func():
"define ...."
blabla
print func.__doc__
Это не покажет DOCSTRING, только потому, что я использую немного Meta Programming Clicky, как это может исправить?
Решение
Ваша завернутая функция возвращена из cost_time
декоратор должен иметь DOCSTRING вместо func
. Отказ Поэтому используйте functools.wraps
который правильно устанавливает __name__
а также __doc__
:
from functools import wraps
def cost_time(fn):
@wraps(fn)
def wrapper():
return fn()
return wrapper
Другие советы
Использовать functools.wraps()
.
Не связан с StackOverflow