运维工程师的发展和前景
2013-03-15 15:03
302 查看
1、什么是闭包
一个函数和它的环境变量合在一起,就构成了一个闭包。 在python中所谓的闭包是一个包含有环境变量取值的函数对象。
2、实例一
def line_conf():
b = 15
def line(x):
return 2*x + b
return line
b=5
my_line = line_conf()
print (my_line(5))
note: 环境变量取值被保存在函数对象的__closure__属性中,他是tuple类型,我们可以通过 print(my_line.__closure__[0].cellcontents) 来访问
3、 实例二
def line_conf(a, b):
def line(x):
return ax+b
return line
line1 = line_conf(1, 1)
line2 = line_conf(4, 5)
print (line1(5), line2(5))
note: 这个例子中, 函数line与环境变量a, b构成闭包, 如果没有闭包,我们需要每次创建直线函数的时候同时说明a, b, x, 这样就需要更多的参数传递, 也减少了代码的可移植性。
一个函数和它的环境变量合在一起,就构成了一个闭包。 在python中所谓的闭包是一个包含有环境变量取值的函数对象。
2、实例一
def line_conf():
b = 15
def line(x):
return 2*x + b
return line
b=5
my_line = line_conf()
print (my_line(5))
note: 环境变量取值被保存在函数对象的__closure__属性中,他是tuple类型,我们可以通过 print(my_line.__closure__[0].cellcontents) 来访问
3、 实例二
def line_conf(a, b):
def line(x):
return ax+b
return line
line1 = line_conf(1, 1)
line2 = line_conf(4, 5)
print (line1(5), line2(5))
note: 这个例子中, 函数line与环境变量a, b构成闭包, 如果没有闭包,我们需要每次创建直线函数的时候同时说明a, b, x, 这样就需要更多的参数传递, 也减少了代码的可移植性。