闭包

闭包:

  封闭的东西:保证数据的安全(最主要的作用)

  1.闭包只能存在嵌套函数中

  2.内层函数对外层函数非全局变量的引用(使用),就会形成闭包。被引用的非全局变量也称为自由变量,这个自由变量会与内层函数产生一个绑定关系,不会在内存中消失

判断一个嵌套函数是否为闭包:

def wrapper():
    a = 1
    def inner():
        print(a)

    return inner
ret = wrapper()
a = 1
def wrapper():
    def inner():
        print(a)  # 没有对外层非全局变量的使用

    return inner
ret = wrapper()
def wrapper(a, b):
    def inner():
        print(a)
        print(b)

    return inner

a = 2
b = 3
ret = wrapper(a, b)
print(ret.__code__.co_freevars) # 如何用代码判断闭包 ***
原文地址:https://www.cnblogs.com/GOD-L/p/13528595.html