闭包函数
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()