Назад к вопросам
Junior — Middle
48
Каким образом можно сохранить отображение документации функции, если она обернута декоратором?
Ответ от нейросети
sobes.tech AI
При оборачивании функции декоратором в Python оригинальная документация (docstring) функции теряется, так как декоратор возвращает новую функцию. Чтобы сохранить docstring и другие метаданные, используют функцию functools.wraps.
Пример:
import functools
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
# дополнительная логика
return func(*args, **kwargs)
return wrapper
@decorator
def my_function():
"""Это документация функции."""
pass
print(my_function.__doc__) # Выведет: Это документация функции.
functools.wraps копирует имя, модуль, docstring и другие атрибуты оригинальной функции в обёртку, сохраняя документацию и удобство отладки.