Python的闭包和装饰器

装饰器:在不影响原函数执行、不修改原函数代码的基础之上,附加一些其他的功能

三句口诀理解Python的函数作用域机制:

1、作用域,是栋楼,下楼套上楼

2、读变量,往下搜,一直到一楼

3、改变量,莫下楼,除非你放狗(global)

设置断点后的执行步骤:

Python的闭包和装饰器执行结果:Python的闭包和装饰器

读变量,往下搜,一直到一楼

Python的闭包和装饰器执行结果:Python的闭包和装饰器

Python的闭包和装饰器执行结果:Python的闭包和装饰器

此时改变量是不可以的,除非加上global

Python的闭包和装饰器-------》Python的闭包和装饰器执行结果:Python的闭包和装饰器

两句口诀理解闭包与装饰器:

1、闭包:至少2层楼,楼下变量管上楼,return上楼不动手(return返回的是函数体对象,其后面不加括号)

2、装饰器:客人空手来(不动手),还得请上楼,干啥都同意,有参给上楼。

先有闭包,再有装饰器,也就是说装饰器是在闭包的基础之上。

闭包的简单示例:

Python的闭包和装饰器

装饰器:

Python的闭包和装饰器执行结果:Python的闭包和装饰器

Python的闭包和装饰器执行结果:Python的闭包和装饰器

带参数的

Python的闭包和装饰器执行结果:Python的闭包和装饰器