Назад к вопросам
СБЕР
Middle
2
Чем декоратор отличается от генератора? Когда лучше использовать генератор вместо списка?
Компании, где спрашивали
Ответ от нейросети
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()