Maison > Article > développement back-end > Calculer le temps d'exécution de la fonction à l'aide du décorateur Python
Ce qui suit est un exemple d'utilisation du décorateur Python pour calculer le temps d'exécution d'une fonction. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'œil ensemble
Les décorateurs jouent un rôle très important en Python Si vous pouvez les utiliser habilement, votre efficacité de travail sera grandement améliorée
Jetons un coup d'œil aux décorateurs Python aujourd'hui. Ça marche.
Cet article utilise principalement le décorateur Python pour calculer la durée d'exécution de la fonction
Certains programmes qui doivent calculer avec précision la durée d'exécution d'une fonction la course à pied peut être utilisée Cette méthode
#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)
Résultats de course :
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
Recommandations associées :
Méthodes de décoration dans les classes basées sur des décorateurs Python
Utiliser Python Journal des décorateurs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!