Issue 2952: List comprehensions are leaking variables (original) (raw)
Originally found at http://www.randombit.net/weblog/programming/variable_leak_in_list_compre hensions.html
First example :
[~]> python Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information.
x=1 [x for x in [1,2,3]] [1, 2, 3] x 3
whoops x changed.
Another example from original post:
$ python Python 2.4.4 (#1, Mar 7 2008, 14:54:19) [GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
x = { 1:2, 3:4 } nothere Traceback (most recent call last): File "", line 1, in ? NameError: name 'nothere' is not defined [nothere for nothere in x.keys()] [1, 3] nothere 3
This bug doesn't seem to affect py3k but it does python 2.4/2.5. Either this should be fixed or documented as a caveat.