Day12 闭包 匿名函数

闭包函数

概念: 内函数使用了外函数的局部变量,外函数返回内函数的引用

# 基本语法
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值