闭包

内层函数套用外层函数并且返回内层函数的情况,被称为闭包(Closure)。

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

f1, f2, f3 = count()
此代码运行结果并非1,4,9,而是9!

这个例子告诉我们,返回闭包一般不要采用循环变量或者后续会发生变化的变量。

posted @ 2017-03-06 17:36  花开丶败  阅读(151)  评论(0)    收藏  举报