Встречается на собеседованиях • сегодня
Для чего используется functools.wraps в декораторах
functools.wraps используется в декораторах для сохранения метаданных оригинальной функции (имя, docstring, аннотации и т.д.). Без него декорированная функция теряет свои атрибуты, что может затруднить отладку и документацию.
Пример без wraps:
python
def decorator(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@decorator
def foo():
"""Docstring"""
pass
print(foo.__name__) # 'wrapper'
print(foo.__doc__) # NoneПример с wraps:
python
from functools import wraps
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@decorator
def foo():
"""Docstring"""
pass
print(foo.__name__) # 'foo'
print(foo.__doc__) # 'Docstring'
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы