zoukankan      html  css  js  c++  java
  • python 闭包特性

    1 通过下面的代码了解闭包的特性

    def outer(arg1):
        print 'im outer and ' + arg1
        def middle(arg2):
            print 'im middle'
            def inner(func):
                print 'im inner'
                return func(arg2)
            return inner
        return middle
    
    print outer('kokok')(123)(lambda x: x)

    也相当于调用

    f_middle = outer('kokok')  # return middle
    f_inner = f_middle(123)  # return inner
    func_result = f_inner(lambda x: x)  # return the result of func(arg2)
    print func_result

    out:

    im outer and kokok
    im middle
    im inner
    123

    2 闭包的特点:

      2.1 inner 能访问 outer 及其祖先函数的命名空间内的变量(局部变量、函数参数)

      2.2 调用 outer 已经返回了,但是他的命名空间被返回的 inner 对象引用,所以不会被回收

  • 相关阅读:
    第五周总结
    第四周总结
    第三周总结
    开课博客
    学习进度
    个人作业1-数组
    数组
    第一周考试总结
    团队个人冲刺第六天
    团队个人冲刺第五天
  • 原文地址:https://www.cnblogs.com/fuzzier/p/7719512.html
Copyright © 2011-2022 走看看