Python Glossary English

все Python 3functoolsфункция

functools.update_wrapper

functools

Копирует метаданные (__name__, __doc__, …) с обёрнутой функции на обёртку; основа декоратора @functools.wraps.

Синтаксис

functools.update_wrapper(wrapper, wrapped)

Напрямую вызывать почти не приходится: @functools.wraps — это тот же update_wrapper, оформленный как декоратор. Прямой вызов нужен, когда обёртка родилась не из def внутри декоратора — например, это объект functools.partial или экземпляр класса с __call__. Функция правит wrapper на месте (и возвращает его же), а заодно кладёт в него ссылку __wrapped__, благодаря которой inspect.signature показывает параметры оригинала, а не (*args, **kwargs).

Примеры

import functools
def orig():
    'док'
def wrap():
    pass
functools.update_wrapper(wrap, orig)
print(wrap.__name__)   # → orig

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности