Когда мы вызываем
next(generator_x()), это запускает генератор и выполняет его до первого встреченного чётного числа. Поскольку первым таковым является двойка, то и в выводе мы получим её.Обратите внимание, что при последующих вызовах
next(generator_x()) будут генерироваться следующие четные числа из диапазона (4), пока генератор не завершит свою работу. Если вызвать next(generator_x()) после того, как генератор завершит свою работу, будет вызвано исключение StopIteration