python_装饰器

实现装饰器:为其他函数添加附加功能,但是不能修改被装饰的函数的源代码和被装饰函数的调用方式; 由高阶函数 结合 嵌套函数实现

      本质:覆盖原有的函数名

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 函数
原文地址:https://www.cnblogs.com/gongfuxiaozhen/p/8660503.html