闭包,装饰器
闭包
出现在嵌套函数中,指的是内层函数引用到了外层函数的本地变量,对内层函数来说就形成了闭包.
-
外层函数嵌套内层函数
-
内层函数调用了外层函数的本地变量
-
外层函数的返回值是内层函数的引用
一般来说,一个函数结束,函数的内部数据会被释放,还给内存,本地变量都会消失,闭包产生的时候,外函数发现自己的本地变量会被内部变量使用,就把这个本地变量绑定给内部函数,然后自己结束
装饰器
-
装饰器本质是一个给其他函数增强功能的嵌套函数
-
不需要改变源代码
-
不改变原函数的调用方式
可使用在被装饰函数上一行使用@装饰器的方式 简化调用
三层装饰器
def 传入参数:
def 调用被装饰函数:
def 实现具体功能