zoukankan      html  css  js  c++  java
  • 【代码学习】PYTHON 闭包

    一、闭包

    在函数内部再定义一个函数,并且这个函数用到了外边函数的变量

    在函数里定义一个函数,不会默认被执行

    def test(number):
        print("-----1-----")
        #在函数内部再定义一个函数,并且这个函数用到了外边函数的变量
        def test_in(): 
            print("-----2-----")
            print number+100
        #这里返回的就是闭包的结果
        print("-----3-----")
        return test_in
    
    ret = test(100)
    print("-"*30)
    ret()

    以上代码运行结果

    二、闭包的案例

    def line_conf(a, b):
        def line(x):
            return a*x + b
        return line
    
    line1 = line_conf(1, 1)
    line2 = line_conf(4, 5)
    print(line1(5))
    print(line2(5))

    以上代码运行结果

    >>> 
    6
    25
    >>> 
    -----1-----
    -----3-----
    ------------------------------
    -----2-----
    200

    内部函数执行完后直接退出函数,外部函数变量依然保存

  • 相关阅读:
    CSUFT 1002 Robot Navigation
    CSUFT 1003 All Your Base
    Uva 1599 最佳路径
    Uva 10129 单词
    欧拉回路
    Uva 10305 给任务排序
    uva 816 Abbott的复仇
    Uva 1103 古代象形文字
    Uva 10118 免费糖果
    Uva 725 除法
  • 原文地址:https://www.cnblogs.com/sqyysec/p/7211444.html
Copyright © 2011-2022 走看看