python基础 -- 闭包

2018-01-24  本文已影响0人  fada492daf5b

1. 作用

返回函数,并在内部引用局部参数,记住内层函数不是马上调用的,所以参数一定要不能在内层函数里面参数不能是直接调用外层函数的参数

2. 操作

牛逼了,竟然全是9

  def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()

f1, f2, f3 = count()

f1()
# 9
f2()
# 9
f3()
# 9

牛逼了,又不是9了

def count():
    def f(j):
        def g():
            return j*j
        return g
    fs = []
    for i in range(1, 4):
        fs.append(f(i)) # f(i)立刻被执行,因此i的当前值被传入f()
    return fs

f1, f2, f3 = count()
f1()
# 1
f2()
# 4
f3()
#9
上一篇下一篇

猜你喜欢

热点阅读