ITPub博客

首页 > Linux操作系统 > Linux操作系统 > python 闭包一例

python 闭包一例

原创 Linux操作系统 作者:babyyellow 时间:2012-02-14 11:17:48 0 删除 编辑
很少写复杂的代码, 所以很少用到所谓的高级功能。

根据百度 知道的解释

闭包是为了在代码退出或者执行完后,能够保持它当时的运行环境,不被gc

当然了,这是我的个人理解。

python 的一个例子。

>>> import os,sys
>>> def a (s=0):
...     r=[s]
...     def x():
...         r[0]+=1
...         return r
...     return x
...
>>> c=a()
>>> print c()

>>> print c()
[1]
>>> print c()
[2]
>>> print c(100)
Traceback (most recent call last):
  File "", line 1, in
TypeError: x() takes no arguments (1 given)
>>> c=a(100)
>>> print c()

>>> print c()
[101]

a 函数执行完后,他执行时的上下文环境,因为存在函数c 通过x 的引用,而导致gc 不能回收a 的环境。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-716218/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。

注册时间:2010-12-02

  • 博文量
    233
  • 访问量
    1422585