为什么只是移动一行的位置结果就不一样
这是正确的代码:
def count(): fs = [] for i in range(1, 4): j=i def f(): return j*j fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3()
然后我就把j=i移动一下位置,无论是前移还是后移:
def count(): fs = [] for i in range(1, 4): def f(j=i): return j*j fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3()
或
def count(): fs = [] for i in range(1, 4): def f(): j=i return j*j fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3()
结果都不正确,这是为什么呢?或者说,为什么加一个j=i就能对了呢?