'''
 Генератор - это функция, которая возвращает объект (итератор), который мы можем перебирать (по одному значению за раз).

 Функция-генератор отличается от обычной функции  тем, что вместо команды return в ней  используется yield. И если return завершает  работу функции, то инструкция yield лишь  приостанавливает её, при этом она возвращает  какое-то значение.
'''


def my_gen():
    n = 1
    print('Это печатается первым')
    yield n

    n += 1
    print('Это печатается вторым')
    yield n

    n += 1
    print('Это печатается последним')
    yield n


a = my_gen()
print(next(a))
print(next(a))
print(next(a))