实现装饰器:为其他函数添加附加功能,但是不能修改被装饰的函数的源代码和被装饰函数的调用方式; 由高阶函数 结合 嵌套函数实现
本质:覆盖原有的函数名
a,函数即“变量”,
b, 高阶函数, 把一个函数名当做实参传递给宁外一个函数,返回值中包含函数名
c,嵌套函数, 函数体中 用def 申明函数
def decoratorFun(fun): #装饰函数 def decorat(*args): fun(*args) print("this is decoration part") return decorat #writeFile = decoratorFun(writeFile) @decoratorFun def writeFile(strMsg): #被装饰函数 File = open("debug.txt","a",encoding="utf-8") File.write(strMsg) print(strMsg) for i in range(10): strmsg = str(i) + " yes to no " writeFile(strmsg) #相当于调用运行的是decorat 函数,传值也是传给 decotat 函数