Back to questions
Senior
8
Использовал ли ты в работе декораторы и генераторы? Что такое декоратор и зачем он нужен?
Companies where asked
Лаборатория Касперского
Answer from AI
sobes.tech AI
Да, использовал и декораторы, и генераторы.
Декоратор — это функция, которая принимает другую функцию и возвращает новую функцию с расширенным поведением, не изменяя исходный код. Это удобно для добавления логирования, проверки прав, кэширования и других аспектов.
Пример декоратора на Python:
def decorator(func):
def wrapper(*args, **kwargs):
print("До вызова функции")
result = func(*args, **kwargs)
print("После вызова функции")
return result
return wrapper
@decorator
def say_hello():
print("Hello")
say_hello()
Генераторы — это функции, которые возвращают итератор и позволяют итерироваться по последовательности значений, используя yield. Они экономят память, так как не создают всю коллекцию сразу.
Пример генератора:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
В тестировании декораторы помогают создавать универсальные обертки для тестов, а генераторы — для создания потоков данных или параметризации.