Вопрос

Я хочу показать 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().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top