Python3.x基础学习-闭包函数

闭包函数

在python中创建一个闭包一般有3个要求
1.闭包函数必须有内嵌函数
2.内嵌函数必须要引用外层函数的变量
3.外部函数返回内嵌函数的地址(函数名称)

判断是否为闭包函数 __closure__

def outter(num):
    def inner():
        print(num)
    print(inner.__closure__)  # (<cell at 0x00000218387798E8: int object at 0x0000000056298190>,)
    return inner()

outter(10)

# (<cell at 0x00000205E3ADA8E8: int object at 0x000000006BEB8190>,)
# 10

num = 10

def outter():
    def inner():
        print(num)
    print(inner.__closure__)
    return inner
outter()

# None