Sobes.tech
Middle
67

Wat is het verschil tussen een decorator en een generator? Wanneer is het beter om een generator te gebruiken in plaats van een lijst?

Bedrijven waar gevraagd werd
СБЕРСБЕР

Antwoord van AI

sobes.tech AI

Декоратор — это функция, которая принимает другую функцию и возвращает новую функцию с расширенным поведением, не изменяя исходный код.

Генератор — это функция, которая возвращает итератор и позволяет поэтапно выдавать значения с помощью ключевого слова yield.

Когда использовать генератор вместо списка:

  • Если нужно обрабатывать большие объемы данных, чтобы не загружать всю коллекцию в память.
  • Когда важна ленивость вычислений — значения генерируются по мере необходимости.

Пример генератора:

def count_up_to(n):
    count = 1
    while count <= n:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Декоратор пример:

def decorator(func):
    def wrapper():
        print("Перед вызовом функции")
        func()
        print("После вызова функции")
    return wrapper

@decorator
def say_hello():
    print("Привет")

say_hello()