python基础学习12----装饰器
2018-09-10 01:06:57来源:博客园 阅读 ()
装饰器可以在不修改目标函数代码的前提下, 在目标函数执行前后增加一些额外功能
例如有一个简单的函数
import time
def func1():
print("这是一个简单的函数")
time.sleep(2)
想给这个函数增加一个计算用时的功能,那么可以利用装饰器
让该函数使用装饰器,即在函数的定义的上方添加@函数名,如下,其相当于将func1=outer(func1)写到后边的程序中
至于函数外的参数在函数中使用的原因是闭包
import time
def outer(f): def inner(): start = time.time() f() end = time.time() print(end-start) return inner @outer#func1=outer(func1) def func1(): print("这是一个简单的函数") time.sleep(2) func1()
#输出
这是一个简单的函数
2.000551223754883
若是一个有参数的函数需要装饰则
def outer(f): def inner(x,y): start = time.time() f(x,y) end = time.time() print(end-start) return inner @outer#func1=outer(func1) def add(x,y): print(x+y) time.sleep(2) add(1,2)
若想要在装饰器中加一些其他语句如判断语句来控制某些功能是否使用
import time def judge(flag=True): def outer(f): def inner(x,y): start = time.time() f(x,y) end = time.time() print(end-start) return inner if flag==True : print("这是一个功能") return outer @judge()#judge()其实相当于outer,除此之外可以在此添加参数 def add(x,y): print(x+y) time.sleep(2) add(1,2)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash