51Testing软件测试论坛
标题: Python 装饰器 和 @修饰符 [打印本页]
作者: 素简生香 时间: 2017-11-16 13:53
标题: Python 装饰器 和 @修饰符
本帖最后由 素简生香 于 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)
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |