Не работает yield в python 3.8!

Прошел новую тему - так называемый "yield". Разобрался с тем что он делает, но как только дело дошло до практики... Ничего не получилось :) Ниже представлен мой код, который по идее должен вывести: "1 2 3" (Каждое число на новой строчке), но выводит "1 1 1". Почему? Как? Где я ошибся?

def func():
    array = [1, 2, 3, 4, 5]
    for num in array:
        yield num

print(next(func()))
print(next(func()))
print(next(func()))

Ответы (2 шт):

Автор решения: stepan
def func():
    array = [1, 2, 3, 4, 5]
    for num in array:
        yield num

gen = func()

print(next(gen))
print(next(gen))
print(next(gen))
→ Ссылка
Автор решения: Михаил Муругов

Потому что Вы не используете один и тот же генератор. Во всех трёх строках Вы создаёте новый объект генератора и получаете каждый раз очередной элемент нового генератора.

→ Ссылка