[issue13652] Creating lambda functions in a loop has unexpected results when resolving variables used as arguments

2011-12-22 Thread WIl Hall

New submission from WIl Hall :

When creating lambda functions in a loop, variables involved in the lambda 
statements appear to not resolve until the loop finishes. This results in all 
of the defined lambda functions using the same variable to resolve to the last 
value of that variable.

For example, in my test program attached, I loop through a list of words: 
["one", "two", "three", "four"] and create a function for each word, I.e: 
lambda: print_word(word). This results in every function having the word "four" 
as their argument. This doesn't seem like intended behavior.

Im my example program attached, I demonstrate both the intended and not 
intended behavior - creating the lambda functions in another function, versus 
creating them in a loop.

--
components: Interpreter Core
files: lambda_tests.py
messages: 150107
nosy: wilhall
priority: normal
severity: normal
status: open
title: Creating lambda functions in a loop has unexpected results when 
resolving variables used as arguments
type: behavior
versions: Python 2.6, Python 2.7
Added file: http://bugs.python.org/file24078/lambda_tests.py

___
Python tracker 
<http://bugs.python.org/issue13652>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13652] Creating lambda functions in a loop has unexpected results when resolving variables used as arguments

2011-12-22 Thread WIl Hall

WIl Hall  added the comment:

Makes sense. Misunderstanding on my part, then. Closing as invalid (not a bug).

--

___
Python tracker 
<http://bugs.python.org/issue13652>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com