[toc]
python基础十五 闭包
1.闭包
1.1作用
保护数据安全,保护数据干净性
1.2 定义
1.在嵌套函数内,使用非全局变量(且不使用本层变量)
2.将嵌套函数返回 ⚠️不能加函数的()
1.3 闭包注意点⚠️
1.⚠️⚠️⚠️ 没有将嵌套的函数返回也是一个闭包,但是这个闭包不能使用!!!
2.闭包不能传可变类型数据
1.4 示例
//闭包示例1
def func():
a = 10 #自由变量
def foo():
print(a)
return foo
f = func()
print(f.__closure__) #验证是否是闭包
(<cell at 0x7fe15808a3d8: int object at 0x10fe06950>,)
⚠️在嵌套函数内,使用非全局变量(且不使用本层变量)
//示例2 未返回嵌套函数值,虽然是一个闭包,但是不能使用
def func():
a = 10
def foo():
print (a)
print (foo.__closure__) #(<cell at 0x7fc7f819a3d8: int object at 0x103132950>,)
func()
//示例3
def func():
a = 10
def foo():
print (a)
return foo
func()() #⚠️此时func() == foo == foo()
func()()
f = func()
f()
//