闭包
什么是闭包
闭包:外层参数(形参与实参)与内层函数组成的一个整体
形式:函数套函数
作用:
- 变量和函数组成一个整体,方便多次调用
- 可以往闭包内传递一部分代码(如函数引用)或数据进去,方便使用
- 可以给调用传递代码(运算)和数据(参数),调用格式:
闭包的简单模板:
def line(k,b):
def create_y(x):
print(k * x + b)
return create_y
line_1 = line(1,2) # 相当于create_y
line_1() # create_y()
注:
-
类与闭包能达到相同的效果(),但类的对象中包含大量内置函数,而闭包更纯净
-
函数引用 = 函数名()
函数引用()
闭包内参数的修改
处理闭包内外层变量的冲突:
修改闭包内层变量为闭包外层变量
nonlcoal 变量名
注:global 修改函数/闭包内的变量为全局变量
def test1():
x =200
def test2():
nonlocal x
print("---1---x=%d" % x)
x = 100
print("---2---x=%d" % x)
return test2
ti = test1()
ti()