测开之路十一:作用域、闭包和修饰器

时间:2022-12-13 20:29:35

 

作用域

 

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G(Global) 全局作用域
B (Built-in) 内建作用域
locals()和globals()
local -> enclosing-> global -> build-in

测开之路十一:作用域、闭包和修饰器

 

 

闭包

1.闭包函数必须有内嵌函数
2.内嵌函数需要引用嵌套函数的变量
3.闭包函数必须返回内嵌函数

第一层def的参数为函数名,第二层def的参数为第一层传的函数需要的参数

测开之路十一:作用域、闭包和修饰器

测开之路十一:作用域、闭包和修饰器

 

 闭包用法:

1.直接调用

测开之路十一:作用域、闭包和修饰器

 

2.修饰器调用, 修饰器的本质是闭包

 测开之路十一:作用域、闭包和修饰器

 

装饰器的作用就是为已经存在的对象添加额外的功能。
常用场景:插入日志、性能测试、事务处理、缓存、权限校验等