Зачем нужен wraps?
Декоратор functools.wraps используется для того, чтобы сохранить информацию о функции-оригинале при создании декоратора.
Когда мы создаем декоратор, он заменяет оригинальную функцию на обернутую. При этом теряется информация о названии функции, docstring и другие атрибуты.
Используя wraps, мы можем сохранить эти атрибуты. Таким образом декорированная функция будет выглядеть как оригинальная для программиста.
Это полезно для отладки и понимания кода. Например, при просмотре стека вызовов будет видно оригинальное имя функции, а не имя декоратора. При использовании help() будет выведен нужный docstring.
Библиотека задач по Python
Когда мы создаем декоратор, он заменяет оригинальную функцию на обернутую. При этом теряется информация о названии функции, docstring и другие атрибуты.
Используя wraps, мы можем сохранить эти атрибуты. Таким образом декорированная функция будет выглядеть как оригинальная для программиста.
Это полезно для отладки и понимания кода. Например, при просмотре стека вызовов будет видно оригинальное имя функции, а не имя декоратора. При использовании help() будет выведен нужный docstring.
Библиотека задач по Python
Что выведет код сверху?
👾 — False, False
👍 — True, False
🥰 — False, True
⚡️ — True, True
Библиотека задач по Python
👾 — False, False
👍 — True, False
🥰 — False, True
⚡️ — True, True
Библиотека задач по Python
Кто разработал язык программирования Python?
Anonymous Quiz
9%
Вик ван Россум
11%
Расмус Лердорф
76%
Гвидо ван Россум
4%
Ниене Стом
Что из перечисленного лучше всего описывает наследование?
Anonymous Quiz
64%
Способность класса выводить членов другого класса как часть своего собственного определения
9%
Средства объединения переменных и методов экземпляра с целью ограничения доступа к членам класса
5%
Основное внимание уделяется переменным и передаче переменных в функции
21%
Позволяет реализовать элегантное программное обеспечение, которое легко модифицируется