python闭包函数

上面我们已经学习了函数嵌套,名称空间和变量作用域

在说闭包函数之前 

我们先来复习一下函数对象,就是理解函数即变量

  函数对象(变量)作用:

          1:可以被赋值

          2:可以当做参数传给函数

          3:可以作为函数的返回值

          4:可以作为容器类型的元素

那么什么是闭包函数呢?

  闭包函数:定义在函数内部的函数,且该函数引用了非全局的外部变量。则该函数就是闭包函数。或者说在嵌套函数中 内层函数引用到了外层函数的变量,就形成了闭包。

为什么要使用闭包呢

  #1.我们想使用函数内部的变量

  2.如果我们需要重用一个变量,但是希望这个变量不被污染

如何用:

  1外层函数定义一个变量,和一个内层函数

  2 外层函数将内层函数返回到外部

  3.调用外层函数时,就获得了内层函数的对象,这样就构成了一个闭包(即等于调用内层函数  ,而内层函数的作用域可以向上查找)

def outer():
    x=2
    def inner():
        print(x)
        pass
    return inner

总结:

  优点:读取函数内部变量,将变量封装起来,可以减少传参次数

  缺点:比普通函数消耗内层

原文地址:https://www.cnblogs.com/wh-alan/p/10077927.html