一、闭包

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

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

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

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

相关文章:

  • 2021-12-26
  • 2021-11-07
  • 2021-08-30
  • 2021-12-06
  • 2021-06-20
  • 2021-07-14
  • 2022-12-23
猜你喜欢
  • 2021-07-06
  • 2021-07-11
  • 2022-01-17
  • 2021-06-24
  • 2021-06-07
  • 2022-02-16
  • 2022-12-23
相关资源
相似解决方案