码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数-闭包的概念

时间:2018-09-20 11:04:01      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:content   包含   环境   class   contents   tuple   属性   python函数   取值   

一个函数和它的环境变量合在一起,就构成了一个闭包(closure)。在Python中,所谓的闭包是一个包含有环境变量取值的函数对象。环境变量取值被保存在函数对象的__closure__属性中。比如下面的代码:

def line_conf():
    b = 15
    def line(x):
        return 2*x+b
    return line       # return a function object

b = 5
my_line = line_conf()
print(my_line.__closure__)
print(my_line.__closure__[0].cell_contents)
print(my_line(5))

>>>>
(<cell at 0x004E8550: int object at 0x1DEC6960>,)
15
25 #B的取值为15, 2*5+15=25

__closure__里包含了一个元组(tuple)。这个元组中的每个元素是cell类型的对象。我们看到第一个cell包含的就是整数15,也就是我们创建闭包时的环境变量b的取值。

Python函数-闭包的概念

标签:content   包含   环境   class   contents   tuple   属性   python函数   取值   

原文地址:https://www.cnblogs.com/konglinqingfeng/p/9678688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!