首先來看乙個小程式,這個是計量所花費時間的程式,以下是以往的解決示例
from functools import wraps, partial
from time import time
def timing(func=none, frequencies=1):
if func is none:
# print("+none")
return partial(timing, frequencies=frequencies)
# else:
# print("-none")
@wraps(func)
def _wrapper(*args, **kwargs):
start_time = time()
for t in range(frequencies):
result = func(*args, **kwargs)
end_time = time()
print('執行花費時間:s。'.format(end_time-start_time))
return result
return _wrapper
@timing
def run():
l =
for i in range(5000000):
l.extend([i])
return len(l)
執行如下:
in [4]: run()
執行花費時間:2.383398s。
out[4]: 5000000
(喜歡刨根問底的可以去掉注釋,並思考預計會有什麼樣的輸出)。
今天無意間看到了python的上下文管理器(context manager),發現也非常不錯,其實這跟with語句是息息相關的,竟然以前一直未在意。
from time import time
def run2(程式設計客棧):
l =
for i in range(5000000):
l.extend([i])
return len(l)
class elapsedtime():
def __enter__(self):
xzmjyzxbpr self.start_time = time()
return self
def __exit__(self, exception_txzmjyzxbprype, exception_value, traceback):
self.end_time = time()
print('執行花費時間:s。'.format(self.end_time - self.start_time))
with elapsedtime():
總結初略看了一點官方文件,上下文管理還是有點多內容的。python發展到現在,其實不簡單了。說簡單,只是你自己不夠與時俱進,掌握的都是老式三板斧而已。所以,知識需要不斷更新,才能彌補自己的盲點,以上就是本文的全部內容,希望能大家的學習或者工作帶程式設計客棧來一定的幫助。
本文標題: 如何在python函式執行前後增加額外的行為
本文位址:
C C main函式執行前後還會發生什麼
在c c 語言執行過程中是不是所有的動作都由main 函式引起,來看下面的 include class a a a a int main 這段 很簡單,但是最終是不是只是列印了this is main這句話,顯然不是,實際的結果是按照下面順序的三句話 this is constructor this...
C 在main 函式執行前,後執行了哪些操作
設定棧指標 初始化static靜態和global全域性變數,即data段的內容 將未初始化部分的全域性變數賦初值 數值型short,int,long等為0,bool為false,指標為null,等等,即.bss段的內容 全域性物件初始化,在main之前呼叫建構函式 將main函式的引數,argc,a...
linux 程式執行前後臺切換
shell支援作用控制,有以下命令 1.command 讓程序在後台執行 2.jobs 檢視後台執行的程序 3.fg n 讓後台執行的程序n到前台來 4.bg n 讓程序n到後台去 ps n 為jobs檢視到的程序編號.fg bg jobs ctrl z都是跟系統任務有關的,雖然現在基本上不怎麼需要...