Возврат значения из цикла без его завершения
Подскажите можно ли как то возвращая элемент из цикла его на этом не прекращать а продолжать выполнение? Пишу асинхронную программу, нужно вернуть element из функции и продолжить её выполнять, пробовал в очередь его класть, но она до конца работы не доступна так же(через queue.put(element))
def my_fun()
for element in elements:
return element
my_fun()
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Пример через yield:
def my_fun():
for element in range(5):
print(f"Создаем элемент {element}")
yield element
for item in my_fun():
print(f"Принимаем элемент {item}")
Вывод:
Создаем элемент 0
Принимаем элемент 0
Создаем элемент 1
Принимаем элемент 1
Создаем элемент 2
Принимаем элемент 2
Создаем элемент 3
Принимаем элемент 3
Создаем элемент 4
Принимаем элемент 4