素简生香 发表于 2017-11-16 13:53:08

Python 装饰器 和 @修饰符

本帖最后由 素简生香 于 2017-11-17 11:04 编辑

【 Python 装饰器 和 @修饰符 】 装饰器本身就是一个函数,将被装饰的函数当作参数,传递给装饰器,返回的是包装后的函数装饰器函数使用 @修饰符 放在被装饰函数的前一行来看下面一段代码:装饰器的最简实现#-*- coding:utf-8 -*- def decofun(func):    func()    print "装饰函数 decofun 运行结束" @decofundef 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)
页: [1]
查看完整版本: Python 装饰器 和 @修饰符