Middle
46
¿En qué se diferencia un decorador de un generador? ¿Cuándo es mejor usar un generador en lugar de una lista?
Empresas donde se preguntó
Respuesta de la IA
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()