Heim > Artikel > Backend-Entwicklung > Berechnen Sie die Funktionslaufzeit mit Python Decorator
Das Folgende ist ein Beispiel für die Verwendung des Python-Dekorators zur Berechnung der Laufzeit einer Funktion. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist. Werfen wir gemeinsam einen Blick darauf
Dekoratoren spielen eine sehr wichtige Rolle in Python. Wenn Sie sie geschickt einsetzen, wird Ihre Arbeitseffizienz erheblich verbessert
Werfen wir heute einen Blick auf Python-Dekoratoren es funktioniert.
In diesem Artikel wird hauptsächlich der Python-Dekorator verwendet, um die Laufzeit einer Funktion zu berechnen
Einige Programme müssen genau berechnen, wie lange eine Funktion gedauert hat Laufen kann verwendet werden. Das Ergebnis dieser Methode ist:
#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)
Verwandte Empfehlungen:
Methoden in Klassen dekorieren, die auf Python-Dekoratoren basieren
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.00Python-Dekoratoren verwenden Log
Das obige ist der detaillierte Inhalt vonBerechnen Sie die Funktionslaufzeit mit Python Decorator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!