Встречается на собеседованиях • сегодня
Что такое декоратор @wraps в Python
@wraps — это декоратор из модуля functools, который сохраняет метаданные (например, имя, docstring) оригинальной функции при её оборачивании другим декоратором. Без него декорированная функция теряет свои атрибуты, что может затруднить отладку и документирование.
Пример без @wraps:
python
def my_decorator(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@my_decorator
def say_hello():
"""Документация функции."""
print("Hello!")
print(say_hello.name) # Выведет 'wrapper', а не 'say_hello'
print(say_hello.doc) # Выведет None, а не документацию
text
**Пример с `@wraps`:**
```python
from functools import wraps
def my_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@my_decorator
def say_hello():
"""Документация функции."""
print("Hello!")
print(say_hello.__name__) # Выведет 'say_hello'
print(say_hello.__doc__) # Выведет документациюИспользование @wraps делает код чище и удобнее для работы с интроспекцией (например, help() или dir()).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы