闭包函数知识点

闭包函数

1、内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数。
2、判断闭包函数的方法__closure__
输出的__closure__是一个cell对象表示是闭包函数,输出的是None 表示不是闭包函数。

一、创建一个闭包函数

def outter():
    name = 'zs'
    def inner():
        # print(name)  # 引用外层函数的变量。
        print('ZZZZ')
        print(inner.__closure__)  # 使用__closuer__内置属性来判断是否是一个闭包
    return inner  # 返回内置函数的地址。
f = outter()
f()  # 等价于 inner()

二、使用外层函数的变量也是闭包。

def outter(age):
    name = 'zs'
    def inner():
        print(age)
    print(inner.__closure__)
    return inner
f = outter(10)
f()  # 等价于 inner()

猜你喜欢

转载自blog.csdn.net/qq_44240254/article/details/86019865
今日推荐