Python进阶1 - Python闭包

在理解闭包之前,需要先理解几个概念:

  1. 外函数和内函数:如果在一个函数内部定义了另一个函数,外部的称为外函数,内部的称为内函数。

  2. 函数的临时变量:函数中定义的变量,在调用时分配内存,在结束时释放内存。

那什么是闭包呢?
闭包就是在内函数里运用外函数的临时变量,并且外函数的返回值是内函数的引用。这种情况下,外函数在结束时会将临时变量绑定给内部函数,这样就算外函数已经结束了,但是调用内函数的时候仍然能够使用外函数的临时变量。此时的内函数就是闭包函数。

# 定义套路
def outer(a):		# 1. 定义外函数(此时会创建内存空间存放函数的代码和变量等,而outer是一个变量,它存放了函数的引用)
    b = 10			# 2. 在外函数中定义一个临时变量
    def inner():	# 3. 定义一个内函数(此时会创建内存空间存放函数的代码和变量等,而inner是一个变量,它存放了函数的引用)
        print(a+b)	# 4. 在内函数中运用外函数的临时变量
    return inner	# 5. 把内函数的引用作为外函数的返回值
# 调用套路
demo = outer(10)	# 1. 调用外函数:用demo来接收inner的引用,此时demo变量里就存放了内函数的引用了
demo()				# 2. 直接调用新引用的demo函数。这里的输出是:20
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值