装饰器(decorator)与闭包(closure)的比较

闭包的作用:
       可以用来在一个函数与一组私有变量(自由变量)之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量(自由变量)能够保持其持久性(保存运行环境与变量的状态)

闭包的特征:

  1.  必须要有函数的嵌套,而且外层函数必须返回内层函数;
  2. 外层函数相当于给内层函数提供了一个包装起来的运行环境,在这个包装的运行环境里面,内层函数可完全自己掌握自由变量的值,且该自由变量的值能够保持其持久性;
  3. 内层函数一定要用到外层函数中定义的自由变量。

代码示例

# written by @MMiL
# 2024.10.27

func_list=[]
for ii,jj in [(1,3),(4,7)]:
    # closure 主体代码
    def deco(ii): # ii 通过参数传入后变成了my_add的自由变量
        b=jj      # b=jj,也是自由变量,闭包必须存在自由变量才有意义
        def my_add(a):
            print(f"\nb={b}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@MMiL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值