关于python中闭包的总结

1.闭包的概念

   首先,仍然从闭包是什么讲起,来看下维基百科上给出的解释:

   

   一脸懵?

   通过PYTHON语言解释一下,闭包,简而言之,给你一个函数,调用该函数后,它并没有返回一个值,而是返回了另一个函数,这返回的另一个函数就是闭包。上文中提到的自由变量,即为调用函数时传入的参数。如下所示:

   

   "inner_func"就是产生的闭包,'the5fire'即为传入的自由变量,而且因为内部函数对它的引用,该变量不会被回收,即使函数的生命周期已经结束。

二.如何显式的查看闭包?

   python同样为我们提供了相关的方法:__closure__()属性用来查看函数是否为闭包,且返回一个对象元组,包含了闭包使用的外部变量。

   

   这里有两点需要注意:

   * 如果主函数内的闭包并没有使用外部变量,就不属于闭包的范畴,__closure__属性返回值为None。请看示例:

   

   * 如果主函数没有return内部函数,就不存在闭包,__closure__属性也便不存在了。

   

三.使用场景

   这个在python中很常见同时也是很重要的一个应用场景就是"装饰器"了,本文暂不作介绍,后续会有相关文章的详细补充,马上就"双12"了,预祝大家购物愉快!

 

转载于:https://www.cnblogs.com/Earth-SmaThing/p/10105172.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值