【代码学习】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

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

posted @ 2017-07-20 15:30  水清云影  阅读(200)  评论(0编辑  收藏  举报