From 13d6739cc7a538023d8a6a648d2907b4730d7132 Mon Sep 17 00:00:00 2001 From: Damien George Date: Wed, 9 Apr 2014 19:01:45 +0100 Subject: py: Generators can have their locals closed over. --- tests/basics/generator-closure.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tests/basics/generator-closure.py (limited to 'tests/basics') diff --git a/tests/basics/generator-closure.py b/tests/basics/generator-closure.py new file mode 100644 index 000000000..d8a517ede --- /dev/null +++ b/tests/basics/generator-closure.py @@ -0,0 +1,26 @@ +# a generator that closes over outer variables +def f(): + x = 1 # closed over by g + def g(): + yield x + yield x + 1 + return g() +for i in f(): + print(i) + +# a generator that has its variables closed over +def f(): + x = 1 # closed over by g + def g(): + return x + 1 + yield g() + x = 2 + yield g() +for i in f(): + print(i) + +# using comprehensions, the inner generator closes over y +generator_of_generators = (((x, y) for x in range(2)) for y in range(3)) +for i in generator_of_generators: + for j in i: + print(j) -- cgit v1.2.3