Sobes.tech
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)

В тестировании декораторы помогают создавать универсальные обертки для тестов, а генераторы — для создания потоков данных или параметризации.