zoukankan      html  css  js  c++  java
  • python 中闭包的问题

    闭包

    函数是一个对象,所以可以作为某个函数的返回结果。

    一个函数和它的环境变量合在一起,就构成了一个闭包(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/

  • 相关阅读:
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
    Learn Prolog Now 翻译
  • 原文地址:https://www.cnblogs.com/Hondsome/p/5964483.html
Copyright © 2011-2022 走看看