zoukankan      html  css  js  c++  java
  • python闭包浅见

    1、个人理解定义:在一个函数A内部定义一个函数B,并在定义的内部函数B内对这个函数A的变量进行引用,那么内部函数B就是闭包。

    2、特性:在内部函数内不能对A函数的变量进行更改  (但是可以将其封装到一个容器内,如列表,再对其进行更改即可)

    3、应用场景:函数上次运行结果作为此次函数参数调用

    def power(x):                   # x表示次方
    def number(y): # y表示要计算x次方的数
    product = y**x
    return product
    return number

    p2 = power(2)
    p4 = power(4)
    print '2的2次方: ',p2(2)
    print '2的4次方: ',p4(2)
    print '2.5的2次方:',p2(2.5)

    4、返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。如果一定要引用循环变量那就再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变

    def count():
    fs = []
    for i in range(1,5):
    def f(j): # 用于绑定循环变量的函数
    def g():
    return j*j
    return g
    fs.append(f(i))
    return fs

    for i in count():
    print i()


    输出:1,4,9,16

  • 相关阅读:
    根据模板自动生成数据
    CSV to XLSX (专用)
    释放用完的Excel COM组件
    配置文件的力量
    字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)
    将结果中的省略号内容全部输出
    Powershell变量的类型
    一些用过的C#类库收集
    运算符
    特殊运算符
  • 原文地址:https://www.cnblogs.com/vickey-wu/p/6686700.html
Copyright © 2011-2022 走看看