python3 闭包的两种情况

闭包:

1.在函数内部再定义一个函数 2.这个函数必须用到了外边的函数的变量

作用:变相延长外部函数生命周期

装饰器:

其实就是一个闭包,把一个函数当做参数然后返回一个替代版函数

python3 闭包的两种情况

In [33]: def test(number):
    ...:     def test_in(number_in):
    ...:         print("ceshi %d"%number_in)
    ...:         return number+number_in
    ...:     return test_in
    ...: 


In [34]: test(10)(20)
ceshi 20
Out[34]: 30


In [35]: f=test(10)


In [36]: f(20)
ceshi 20
Out[36]: 30