闭包:1.闭 :内部的函数
2.包 :包含了对外部函数作用域中变量的引用
#如果x定义了,他就用自己的了,就实现不了闭包
def func():
x=21
def inner():
x=10
print(x)
闭包例子
def func():
x=21
def inner():
'''闭包函数'''
print(x)
return inner()
判断闭包函数的方法:closure
#输出的__closure__有cell元素 :是闭包函数
def func():
name = 'eva'
def inner():
print(name)
print(inner.__closure__)
return inner
f = func()
f()
#输出的__closure__为None :不是闭包函数
name = 'egon'
def func2():
def inner():
print(name)
print(inner.__closure__)
return inner
f2 = func2()