L>E>G>B
L:local 函数内部作用域
E:enclosing函数内部与内嵌函数之间
G:global 全局作用域
B:build-in 内置作用域(列表,元组,)
![](https://img.haomeiwen.com/i7129460/62344696aa2a0f26.png)
![](https://img.haomeiwen.com/i7129460/c7c6d2bb88878283.png)
![](https://img.haomeiwen.com/i7129460/6f686ae281020d3b.png)
闭包:Closure:内部函数中对enclosing作用域的变量进行引用
函数实质与属性:
1:函数是一个对象
2:函数执行完成后内部变量回收
3:函数属性
4:函数返回值(返回的话不会被回收)
![](https://img.haomeiwen.com/i7129460/64c68d182ca44bbc.png)
![](https://img.haomeiwen.com/i7129460/0ee3874e0b432681.png)
闭包主要实现了代码的封装和复用
![](https://img.haomeiwen.com/i7129460/44798f8b6edee01c.png)
使用Python闭包。必须满足以下三个条件:
我们必须有一个嵌套函数。
这个嵌套函数必须引用一个非局部变量(包含它的范围内的变量)。
封闭范围必须返回此功能。
装饰器
1:装饰器用来装饰函数
2:返回一个函数对象
3:被装饰函数标识符指向返回的函数对象
4:语法糖 @dec
![](https://img.haomeiwen.com/i7129460/05d5847a8c000d53.png)
@dec 作用等于my_sum= dec(my_sum)
![](https://img.haomeiwen.com/i7129460/7adf35b685f9f70b.png)
网友评论