装饰器:在不影响原函数执行、不修改原函数代码的基础之上,附加一些其他的功能
三句口诀理解Python的函数作用域机制:
1、作用域,是栋楼,下楼套上楼
2、读变量,往下搜,一直到一楼
3、改变量,莫下楼,除非你放狗(global)
设置断点后的执行步骤:
执行结果:
读变量,往下搜,一直到一楼
执行结果:
执行结果:
此时改变量是不可以的,除非加上global
-------》执行结果:
两句口诀理解闭包与装饰器:
1、闭包:至少2层楼,楼下变量管上楼,return上楼不动手(return返回的是函数体对象,其后面不加括号)
2、装饰器:客人空手来(不动手),还得请上楼,干啥都同意,有参给上楼。
先有闭包,再有装饰器,也就是说装饰器是在闭包的基础之上。
闭包的简单示例:
装饰器:
执行结果:
执行结果:
带参数的
执行结果: