闭包函数
概念: 内函数使用了外函数的局部变量,外函数返回内函数的引用
# 基本语法
def shagndan():
up = "花木兰"
def zhongdan():
midell = '妲己'
print('{}打不过{}'.format(midell,up)) # 调用了外层的up
return zhongdan # 返回到外函数
shangdan()
闭包函数:
定义: 内函数使用了外函数的变量,外函数把内函数返回出来的过程叫做闭包
本质就是函数的嵌套,在外函数 里在定义一个函数
意义:不懂,就是外部可以调用内部的变量,内部的 变量别保护起来,不能随意的修改.
特征: 内函数使用了外函数的局部变量,那么该变量与内函数发生了绑定,生命周期被延长,没有随着外函数的调用结束而释放
# 闭包模拟鼠标点击次数
def click_():
num = 0
def func():
nonlocal num #修改外函数的局部变量
num +=1
print(num)
return func
res = click_() # click_() = func
res() # 1
res() # 2
res() # 3
匿名函数 :只有返回值的函数
语法:
lambda 参数: 返回值
追求,简洁高效
#(1) 无参的lambda表达式
func = lambda : 111
#(2)有参的lambda表达式
func = lambda x : x**2
# (3)带有条件判断的lambda表达式
# 样式一
func = lambda n: '偶数'if n%2==0 else '奇数'
res = func(8)
# 样式二
func = lambda x,y : x if x>y else y
res = func(11,5)
# 样式三
# func = lambda n : n >2
# res = func(1