闭包

作者: 钱塘 | 来源:发表于2017-06-24 23:28 被阅读6次

    定义:如果在一个内部函数里,对在外部作用域的变量进行了引用,那么内部函数就被认为是闭包

    闭包的效果:闭包的函数可以脱离原来的函数进行引用

    闭包指延伸了作用域的函数,其中包含函数定义体中引用,但是不在定义体中定义的非全局变量,函数是不是匿名的没有关系,关键是它能访问定义体之外定义的非全局变量。

    def make_averager():
        series = []
        def averager(new_value):
            seires.append(new_value)
            total = sum(series)
            return total/len(series)
        return averager
    
    

    averager的闭包延伸到那个函数的作用域之外,包含自由变量series的绑定。

    综上,闭包是一种函数,它会保留定义函数时存在的自由变量的绑定,这样调用函数时,虽然定义作用域不可用了,但是仍能使用那些绑定。

    相关文章

      网友评论

          本文标题:闭包

          本文链接:https://www.haomeiwen.com/subject/mkgkcxtx.html