直接上代码:

import time
from functools import wraps # 定义装饰器
def fn_timer(function):
@wraps(function)
def function_timer(*args,**kwargs):
t0 = time.time()
result = function(*args,**kwargs)
t1 = time.time()
print '[finished {func_name} in {time:.2f}s]'.format(func_name = function.__name__,time = t1 - t0)
return result
return function_timer # 使用装饰器来计时
@fn_timer
def download(url):
# 模拟下载3秒
print 'start to download from {0}...'.format(url)
time.sleep(3)
print 'download finished!' download('www.baidu.com')
start to download from www.baidu.com...
download finished!
[finished download in 3.00s]

随机推荐

  1. DecimalFormat 四舍五入Float类型的坑

    今天又踩了一个坑,使用DecimalFormat来完毕四舍五入.可是传入的是float类型,几轮測试才发现一个问题,传入的float会被转为double类型.大家都知道float是4位,double是 ...

  2. ArcGIS ArcMap 问题(ArcMap闪退、cx_oracle安装不上)

    一.问题描述 1.ArcMap闪退 2.安装32位cx_oracle提示python目录不存在 二.解决方案 1.修改pythoncore的文件目录,指向C:\Python27\ArcGIS10.3\ ...

  3. Android 切换主题 (二)

    Android 切换主题 (二) 背景 我原来写过一篇文章关于 android 切换主题的文章 -- Android 切换主题以及换肤的实现 , 里面介绍了如何使用 setTheme() 来切换主题, ...

  4. Vmware虚拟机中安装centos,并实现联网

    1 安装所需要的软件 vmware workstation 12 永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N CentOS-7-x86_64-Minimal-1708 2 ...

  5. if...else if...else和switch语句的注意点

    java if...else if...else 语句 if 语句后面可以跟 elseif…else 语句,这种语句可以检测到多种可能的情况. 使用 if,else if,else 语句的时候,需要注 ...

  6. SQL中的IF ELSE(CASE语句的使用)(转载)

    大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREA ...

  7. 从0到1实现SourceTree连接Gitlab

    见下面的链接 http://note.youdao.com/noteshare?id=3622d02a38464c524222ede1b4fb06d2 SourceTree下载地址:Windows V ...

  8. Hibernate的多对多映射关系

    example: 老师(teacher)和学生(Student)就是一个多对多的关系吧?老师可以有多个学生,学生也可以由多个老师,那在Hibernate中多对多是怎样实现的呢?? 在Hibernate ...

  9. Servlet------>servletDemo 及细节注意

    原理图: 前提:我用的命令行都是mac系统下用的,非win jsp实质是一个servlet,所以要先了解servlet,如上页面是一个servletdemo,下面是尝试的步骤 1.先写好Demo.ja ...

  10. docker remote api enable in ubuntu

    现在使用docker作为开发环境,操作系统是ubuntu16.10,pycharm中使用remote interpreter,需要用到remote api,结果发现自己的原答案是针对ubuntu 14 ...