Python闭包函数

@[TOC] Python的闭包函数

如果一个函数定义a在另一个函数b的作用域内,并且引用了外层函数b的变量,则该函数称为闭包。闭包是Python所支持的一种特性,它让在非global scope定义的函数可以引用其外围空间中的变量,这些外围空间中被引用的变量叫做这个函数的环境变量。环境变量和这个非全局函数一起构成了闭包。

具体理解为,如果将函数作为返回值,它返回了一个函数+这个函数所需要的所有变量
闭包特点:
一个函数a返回的函数对象b,这个函数对象b执行的话依赖非b函数内部的变量值,这个时候,函数返回的实际内容如下:
1 函数对象b
2 函数对象b需要使用的外部变量和变量值 (在a里)

以上就是闭包
闭包必须嵌套在一个函数里,必须返回一个调用外部变量的函数对象,才是闭包

举例说明:

def say(a):
    a = 0
    def speak():
        print(a)     #调用了函数外面的变量,固speak()为闭包函数
    return speak    #返回speak函数的引用和speak需要用的变量a

a = 1
h = say(a)      #在这里h接收到了speak闭包函数的地址,和speak需要的a变量
h()             #调用h函数
print(a)        #h函数内部a是0,然而外部a还是1,它们是不同地址的a

输出是

0
1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值