Discuss / Python / 其实很简单的,代码贴上

其实很简单的,代码贴上

Topic source
 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被覆盖后返回最后一次指向的错误了


  • 1

Reply