New submission from artxyz:

Python 2.7.11
GCC 4.8.4

Getting weird results when define a nested function in a loop and store them in 
a list

    x = list()
    for i in xrange(5):
        def FUN():
            print i
        x.append(FUN)

Calling functions from list using index works fine:

    for i in xrange(5):
        print x[i]
        x[i]()
    # prints 0 1 2 3 4

Calling function using iteration through the sequence yields  wrong results, 
despite current function (f) changes:

    for f in x:
        print f
        f()
    # prints 4 4 4 4 4

----------
components: Interpreter Core
files: nested_fun_bug.py
messages: 277155
nosy: artxyz
priority: normal
severity: normal
status: open
title: Nested fuctions Unexpected behaviour when stored in a list and called 
after.
type: behavior
versions: Python 2.7
Added file: http://bugs.python.org/file44781/nested_fun_bug.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28241>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to