This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author artxyz
Recipients artxyz
Date 2016-09-21.15:12:53
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1474470773.2.0.761547544618.issue28241@psf.upfronthosting.co.za>
In-reply-to
Content
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
History
Date User Action Args
2016-09-21 15:12:53artxyzsetrecipients: + artxyz
2016-09-21 15:12:53artxyzsetmessageid: <1474470773.2.0.761547544618.issue28241@psf.upfronthosting.co.za>
2016-09-21 15:12:53artxyzlinkissue28241 messages
2016-09-21 15:12:53artxyzcreate