22闭包

闭包

什么是闭包

闭是封闭,包是包含。

闭包:

  • 内部函数对外部作用域里的变量的引用
  • 函数内的属性,都是有生命周期,都是在函数执行期间
  • 闭包内的闭包函数私有化了变量,完成了数据的封装,类似面向对象

demo:

def foo():
    print('in foo()')

    def bar():
        print('in bar()')

# 1.直接运行内部函数报错
#bar()

# 2.考虑先运行外部函数,在运行内部函数,依然会报错
#foo()
#bar()

由于作用域的问题,函数内的属性都是有生命周期的,只有在函数执行期间

再考虑在这段代码,只有调用foo()是,内部的print()及bar()才能存活。

现在我们为了让foo()内的bar()存活,就是调用bar(),我们该怎么做?

把bar()函数返回给函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值