Дополняет функцию-обёртку, данными из некоторых атрибутов оборачиваемой функции.
functools.update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)
-> callable
wrapper -- Функция-обёртка.

wrapped -- Оборачиваемая функция.

assigned=WRAPPER_ASSIGNMENTS -- Кортеж с именами атрибутов оборачиваемой функции, которые следует перенести в обёртку.

updated=WRAPPER_UPDATES -- Кортеж с именами атрибутов оборачиваемой функции, которыми следует обновить обёртку.

На заметку
update_wrapper() может использоваться с любыми объектами, поддерживающими вызов.

Для assigned и updated по умолчанию используются значения констант уровня модуля:

WRAPPER_ASSIGNMENTSПроставляет обёртке __name__, __module__, __doc__, +py3.2 __qualname__, __annotations__.
WRAPPER_UPDATESОбновляет __dict__ обёртки.

Данная функция, в основном, используется для создания декораторов, возвращающих функцию в обёртке. Если данные обёртки не обновить данными из оборачиваемой ею функции, то отладка кода может существенно усложниться.

На заметку
Зачастую вместо вызова данной функции удобнее применять декоратор functools.wraps().

def my_func():
"""Wrapped function."""
return 5


def my_wrapper():
"""Wrapper function."""
return 10


my_wrapper = update_wrapper(my_wrapper, my_func)

my_wrapper.__name__ # 'my_func'
my_wrapper.__doc__ # 'Wrapped function.'
my_wrapper() # 10

+py3.2 Атрибуты, упомянутые в assigned или updated, но отсутствующие в оборачиваемом объекте, игнорируются — они не будут установлены в обёртку. Однако же, если обёртка не имеет атрибутов, перечисленных в updated, то будет возбуждено AttributeError.

+py3.2 Для обеспечения доступа к оригинальной функции, например, для интроспекции или обхода кеширующего декоратора типа lru_cache(), обёртке будет автоматически добавлен атрибут __wrapped__.

+py3.4 Атрибут __wrapped__ указывает на обёрнутую функцию, даже если для неё тоже определён __wrapped__ . См. bpo-17482.
Синонимы поиска: functools.update_wrapper, functools, update_wrapper
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.