python 中闭包的问题
2016-10-15 15:08
260 查看
闭包
函数是一个对象,所以可以作为某个函数的返回结果。
一个函数和它的环境变量合在一起,就构成了一个闭包(closure)。在Python中,所谓的闭包是一个包含有环境变量取值的函数对象。环境变量取值被保存在函数对象的__closure__属性中
使用闭包注意事项 1.闭包中是不能修改外部作用域的局部变量的
作用
用途1:当闭包执行完后,仍然能够保持住当前的运行环境。比如说,如果你希望函数的每次执行结果,都是基于这个函数上次的运行结果。我以一个类似棋盘游戏的例子来说明。假设棋盘大小为50*50,左上角为坐标系原点(0,0),我需要一个函数,接收2个参数,分别为方向(direction),步长(step),该函数控制棋子的运动。棋子运动的新的坐标除了依赖于方向和步长以外,当然还要根据原来所处的坐标点,用闭包就可以保持住这个棋子原来所处的坐标。
用途2:闭包可以根据外部作用域的局部变量来得到不同的结果
这有点像一种类似配置功能的作用,我们可以修改外部的变量,闭包根据这个变量展现出不同的功能。比如有时我们需要对某些文件的特殊行进行分
在用Python进行函数式编程时,闭包对数据的持久化以及按配置产生不同的功能。
参考链接:
http://blog.csdn.net/tao01230/article/details/45972763 http://python.jobbole.com/82624/
相关文章推荐
- 【学习笔记】用python的非闭包、闭包(函数式编程)、面向对象方法解决旅行者问题
- Python闭包需要注意的问题
- Python闭包 变量问题
- 实例讲解Python的函数闭包使用中应注意的问题
- python中的闭包问题
- 实例讲解Python的函数闭包使用中应注意的问题
- python函数的闭包问题(内部函数与外部函数详述)
- [动态语言]python的闭包问题
- Python 闭包问题
- python 闭包中引用的变量值变更问题
- python闭包问题
- Python中的闭包问题
- 洗礼灵魂,修炼python(23)--自定义函数(4)—闭包进阶问题—>报错UnboundLocalError: local variable 'x' referenced before assign
- 一个Python中的闭包问题
- 关于python函数闭包问题
- python----mysql链接汉字编码的问题
- python编码问题1
- Python 3.0安装BeautifulSoup插件并使用 与Python 2 version of Beautiful Soup under Python 3问题处理
- C# 中闭包问题
- 重写mtcnn遇到的python及tensorflow问题