本帖最后由 素简生香 于 2017-11-17 11:04 编辑
【 Python 装饰器 和 @修饰符 】 装饰器本身就是一个函数,将被装饰的函数当作参数,传递给装饰器,返回的是包装后的函数 装饰器函数使用 @修饰符 放在被装饰函数的前一行 来看下面一段代码: 装饰器的最简实现 #-*- coding:utf-8 -*- def decofun(func): func() print "装饰函数 decofun 运行结束" @decofun def myFun(): print "调用被装饰函数 myFun" 在上面的代码中,decofun就是装饰函数,myFun 则是被调用函数; python 解释器在发现修饰符@decofun时,会自动调用 decofun 函数,将修饰符下面的def myFun函数的定义作为参数传递给 decofun 函数的形参 func; 上面的代码等价于: #-*- coding:utf-8 -*- def decofun(func): func() print "装饰函数 decofun 运行结束" def myFun(): print "调用被装饰函数 myFun" myFun = decofun(myFun)
|