On 7/29/2014 3:18 AM, Frank Millman wrote:
Hi allPython 3.4.1 Here is a simple generator - def test(): print('start') for i in range(5): yield i print('done') x = test() for j in x: print(j) As expected, the output is - start 0 1 2 3 4 done Here I break the loop - x = test() for j in x: print(j) if j == 2: break Now the output is - start 0 1 2 'done' does not appear, so the generator does not actually terminate. What happens to it?
It sits there waiting for you to ask for the next value. Add for j in x: print(j) to exhaust it. Even then, it sits there until garbage collected. -- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list
