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

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

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

Этот декоратор существует для облегчения применения функции functools.update_wrapper() и призван обрамлять функцию-обёртку.

    from functools import wraps


def decorator(func):
@wraps(func)
def wrapper():
"""Описание обёртки."""
return func()
return wrapper


@decorator
def decorated():
"""Описание функции."""


print(decorated.__name__) # decorated
print(decorated.__doc__) # Описание функции.


# А если не использовать wraps, то получим следующее:

def decorator_nowraps(func):
def wrapper():
"""Описание обёртки."""
return func()
return wrapper


@decorator_nowraps
def decorated():
"""Описание функции."""


print(decorated.__name__) # wrapper
print(decorated.__doc__) # Описание обёртки.

Синонимы поиска: functools.wraps, functools, wraps, обёртка, обернуть
На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.