Встречается на 2% собеседований по Python
Что такое декоратор @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
интервью вопросы и ответы