京公网安备 11010802034615号
经营许可证编号:京B2-20210330
使用python装饰器计算函数运行时间的实例
装饰器在python里面有很重要的作用, 如果能够熟练使用,将会大大的提高工作效率
今天就来见识一下 python 装饰器,到底是怎么工作的。
本文主要是利用python装饰器计算函数运行时间
一些需要精确的计算函数运行了多久的程序,都可以采用这种方法
#coding:utf-8
import urllib2,re,time,random,os,datetime
import HTMLParser
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#计算时间函数
def print_run_time(func):
def wrapper(*args, **kw):
local_time = time.time()
func(*args, **kw)
print 'current Function [%s] run time is %.2f' % (func.__name__ ,time.time() - local_time)
return wrapper
class test:
def __init__(self):
self.url=''
#获取网页页面内容
#即装饰器不管参数有多少,都能使用
@print_run_time
def get_html(self,url):
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0'}#设置header
req = urllib2.Request(url=url,headers=headers)
try:
html = urllib2.urlopen(req).read().decode('utf-8')
html=HTMLParser.HTMLParser().unescape(html)#处理网页内容, 可以将一些html类型的符号如" 转换回双引号
#html = html.decode('utf-8','replace').encode(sys.getfilesystemencoding())#转码:避免输出出现乱码
except urllib2.HTTPError,e:
print(2,u"连接页面失败,错误原因: %s" % e.code)
return None
except urllib2.URLError,e:
if hasattr(e,'reason'):
print(2,u"连接页面失败,错误原因:%s" % e.reason)
return None
return html
#在类的内部使用装饰器
@print_run_time
def run(self):
self.url='http://www.baidu.com'
self.get_html(self.url)
print 'end'
#在外面直接使用装饰器
@print_run_time
def get_current_dir(spath):
#spath=os.getcwd()
#spath=os.path.abspath(os.curdir)
for schild in os.listdir(spath):
schildpath=spath+'/'+schild
if os.path.isdir(schildpath):
get_current_dir(schildpath)
else:
print schildpath
if __name__ == '__main__':
my_test=test()
my_test.run()
spath=os.path.abspath('.')
get_current_dir(spath)
运行结果:
current Function [get_html] run time is 0.29
end
current Function [run] run time is 0.29
05.python_study/03.decorator.py
current Function [get_current_dir] run time is 0.00
以上这篇使用python装饰器计算函数运行时间的实例就是小编分享给大家的全部内容了
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在 MySQL 查询性能优化体系中,索引是降低查询耗时、提升数据库吞吐的核心手段。其中联合索引与覆盖索引是实际开发中最高频的两 ...
2026-06-15在数据仓库建设与商业智能分析体系中,维度建模是应用最广泛的建模方法论,而事实表与维度表是维度建模的两大核心构件,共同构成 ...
2026-06-15 很多数据分析师能熟练计算指标,但当被问到“这家企业的核心业务目标是什么”“如何把模糊的战略目标拆解为可量化的指标”“ ...
2026-06-15在数据分析、业务监控、运营复盘等场景中,列值趋势计算是核心需求之一。无论是分析销售额的月度增长、用户活跃的变化趋势、库存 ...
2026-06-12在数字经济深度渗透的当下,消费者的购买行为已从过去的 “被动接受” 转变为 “主动决策”。流量红利消退、获客成本攀升、用户 ...
2026-06-12CDA三级认证是三个级别中的塔尖,全面考察数据战略、团队领导和复杂项目的综合能力。它所对应的《敏捷数据挖掘》教材,不再局限 ...
2026-06-12在游戏产业的商业逻辑中,付费玩家是支撑游戏生存与发展的核心支柱。行业普遍遵循 “二八定律”:20% 的付费玩家贡献了游戏 80% ...
2026-06-11【核心关键词】企业、定位、传统、产品、互联网、可视化、业务侧、数字化、结构化、数据分析、传统制造业、市场状态、发展空间 ...
2026-06-11 解读《CDA二级教材:量化策略分析(2025)》的全景结构与学习逻辑 ” CDA二级认证是企业招聘数据分析师时最常提及的证书门槛 ...
2026-06-11【核心关键词】药企、可视化、营销、分类、数据分析师、销售数据、业务人员、指导方向、分析报告、营销数据、营销医生 【专访摘 ...
2026-06-10在统计学分析、问卷调研、实验验证、业务复盘等场景中,卡方检验与 T 检验是应用最广泛的两类基础假设检验方法。前者专门处理分 ...
2026-06-10 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-06-10在MySQL数据库日常查询、数据统计、后台接口开发、数据导出等场景中,开发者经常需要查询数据表除某几列之外的所有字段。例如查 ...
2026-06-09在Python网络请求、爬虫开发、接口测试、数据抓取等实操场景中,requests库是最常用的第三方请求工具,而content属性是requests ...
2026-06-09 数据分析正在重塑每一个行业。CDA认证的三本官方教材,分别对应Level I、Level II、Level III,为你铺就从业务数据分析到数 ...
2026-06-09在数字财务、智慧财税、业财融合深度推进的当下,传统财务模式下数据标准混乱、业务流程碎片化、知识无法沉淀、系统互通性差等问 ...
2026-06-08随着数字经济深度渗透各行各业,数据正式成为继土地、劳动力、资本、技术之后的第五大生产要素,是企业数字化转型、精细化运营、 ...
2026-06-08 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-06-08【核心关键词】贷款、报表、课程、专业、建模、缺失值、营销、互联网、银行、办公自动化、数据分析、数据预处理、特征工程、贷 ...
2026-06-05在数据库数据查询、业务报表统计、多表关联分析中,LEFT JOIN左连接是使用率最高的SQL关联查询语句。其核心特性是保留左表全部数 ...
2026-06-05