def foo(): x = list() for i in xrange(5): def FUN(): print i x.append(FUN) print x for i in xrange(5): print x[i] x[i]() # prints 0 1 2 3 4 print '--' for f in x: print f f() # prints 4 4 4 4 4 foo()