Вы создаете новый генератор каждый раз. Вы должны вызывать testGen()
только один раз, а затем использовать возвращаемый объект. Попробуйте: * * 1002
w = 0
g = testGen()
while w < 10:
print g.next()
w += 1
Тогда, конечно, есть нормальное идиоматическое использование генератора:
for n in testGen():
print n
Обратите внимание, что это вызовет testGen()
только один раз в начале цикла, а не один раз за итерацию.