]> granicus.if.org Git - python/commitdiff
Expand a bit on genexp scopes.
authorGeorg Brandl <georg@python.org>
Mon, 3 Mar 2008 21:31:50 +0000 (21:31 +0000)
committerGeorg Brandl <georg@python.org>
Mon, 3 Mar 2008 21:31:50 +0000 (21:31 +0000)
Doc/reference/expressions.rst

index 23958eee7d3f13bd00078398aeae004bbadb7c30..06539107323323e4818b400d8518206292c61ef3 100644 (file)
@@ -230,14 +230,15 @@ generator are those that would be produced by considering each of the
 evaluating the expression to yield a value that is reached the innermost block
 for each iteration.
 
-Variables used in the generator expression are evaluated lazily when the
-:meth:`next` method is called for generator object (in the same fashion as
-normal generators). However, the leftmost :keyword:`for` clause is immediately
-evaluated so that error produced by it can be seen before any other possible
-error in the code that handles the generator expression. Subsequent
-:keyword:`for` clauses cannot be evaluated immediately since they may depend on
-the previous :keyword:`for` loop. For example: ``(x*y for x in range(10) for y
-in bar(x))``.
+Variables used in the generator expression are evaluated lazily in a separate
+scope when the :meth:`next` method is called for the generator object (in the
+same fashion as for normal generators).  However, the :keyword:`in` expression
+of the leftmost :keyword:`for` clause is immediately evaluated in the current
+scope so that an error produced by it can be seen before any other possible
+error in the code that handles the generator expression.  Subsequent
+:keyword:`for` and :keyword:`if` clauses cannot be evaluated immediately since
+they may depend on the previous :keyword:`for` loop.  For example:
+``(x*y for x in range(10) for y in bar(x))``.
 
 The parentheses can be omitted on calls with only one argument. See section
 :ref:`calls` for the detail.