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

  • 相关阅读:
    http协议之状态码
    HTTP协议入门基础
    CI框架使用(一)
    memcache常见现象(一)雪崩现象
    memcached分布式一致性哈希算法
    编译php扩展
    memcached--delete--replace--set--get--incr--decr--stats
    memcached--add使用
    php5.3之命名空间
    MySQL优化(一)
  • 原文地址:https://www.cnblogs.com/vickey-wu/p/6686700.html
Copyright © 2011-2022 走看看