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() f1() => 1 f2() => 4 f3() => 9
其实就是改变了参数i的引用,将i的值赋给j,这样就不会出现i被覆盖后返回最后一次指向的错误了
Sign in to make a reply
我只是王琦
其实就是改变了参数i的引用,将i的值赋给j,这样就不会出现i被覆盖后返回最后一次指向的错误了