[Piglit] [PATCH 2/4] framework/log.py: Make self.__summary keys explicitly

Ilia Mirkin imirkin at alum.mit.edu
Mon Feb 17 12:48:34 PST 2014


On Mon, Feb 17, 2014 at 3:39 PM, Dylan Baker <baker.dylan.c at gmail.com> wrote:
> I didn't think that list comprehensions leaked, since they're supposed to be
> usable anywhere map() and filter() is used without any additional side
> effects. Maybe I'm wrong though.

Python 2.7.5 (default, Oct 27 2013, 05:36:27)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> [x for x in xrange(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
9
>>> (y for y in xrange(10))
<generator object <genexpr> at 0x7ff5c3ddc910>
>>> y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined

It's one of those warts of the language. They couldn't remove the
leaking (until python3) because some programs had grown to implicitly
rely on that.

Here's a fun one:

res = [(lambda: x) for x in xrange(10)]
for r in res:
  print r()

  -ilia


More information about the Piglit mailing list