一.装饰器前置知识要点
1.名称空间
存放名字与变量绑定关系的地方
名称空间的分类:
内置名称空间:Python解释器启动时,存放自带的名字的地方。(比如内置函数)
全局名称空间:在执行文件时,文件级别名字存放的地方
局部名称空间:在执行文件过程中,如果调用函数,用来存放函数内定名称的地方,调用时生效,调用结束后失效
加载顺序:内置--------》全局----------》局部
查找顺序:局部--------》全局----------》内置
2.作用域
作用域:作用的范围
(1).全局作用域(globals())
全局存活,全局有效
(2).局部作用域(locals())
临时存活,局部有效
注意点:1.作用域关系,函数定义时已经确定,与函数调用位置无关,在调用函数是回到原来定义函数
的位置去找作用域关系。
3.闭包函数
定义:定义在内部的函数,包含对外部作用域的引用,而不是对全局作用域的引用,该函数就是闭包函数
二.装饰器
装饰器目的:遵循原则的前提下,为其他函数添加新功能
装饰器遵循的原则:1.不修改被装饰对象的源代码 2.不修改被调用对象的调用方式
无参装饰器例:
有参函数例:
时间: 2024-10-14 04:37:07