需求如下
專案中定義了兩個函式foo和bar 這是公共函式。現在需要在調取這兩個函式的基礎上 計算函式執行的時間。(原則不修改foo和bar函式)
演變一:
這種方式是直接在原函式的內部修改源** 太過於簡單 就不寫了。這種方式缺點太多,涉及到直接修改函式原始碼了。方式不可取。
演變二
import time
deffoo
(): time.sleep(1)
print('foo......')
defbar
(): time.sleep(1)
print('bar......')
defshow_time
(f):
start_time = time.time()
f()end_time = time.time()
print('spend time %s'%(end_time - start_time))
show_time(bar)
結論 :如果想要調取foo 那就直接調取show_time(foo) 如果想要調取bar 直接show_time(bar) 即可。但是目前的缺陷是:本來是調取foo 現在變成調取show_time 改變了調取的方式。雖然實現了功能但是改變函式名是不可取的。
演變三
import time
deffoo
(): time.sleep(1)
print('foo......')
defbar
(): time.sleep(1)
print('bar......')
defshow_time
(f):
definner
(): start_time = time.time()
f()end_time = time.time()
print('spend time %s'%(end_time - start_time))
return inner
foo = show_time(foo)
bar = show_time(bar)
foo()
bar()
結論:功能基本上已經實現 但是這種寫法 不好看,每乙個函式都需要進行賦值。
演變四
import time
defshow_time
(f):
definner
(): start_time = time.time()
f()end_time = time.time()
print('spend time %s'%(end_time - start_time))
return inner
@show_time # foo = show_time(foo)
deffoo
(): time.sleep(1)
print('foo......')
@show_time # bar = show_time(bar)
defbar
(): time.sleep(1)
print('bar......')
foo()
bar()
結論:這就是最終的方式 mysql架構演變過程
我們小組研究的是mysql,今天由小帥給大家分享我們組的研究成功,我沒有做什麼突出貢獻,主要的技術點都是小帥沒日沒夜研究的,我也就幫忙做了個背景介紹,今天先總結一下mysql的架構之路,明天我也好好的研究一下主從複製什麼的,爭取在貢獻一篇部落格給大家參考 mysql是由原mysql ab公司自主研發...
網路架構及其演變過程
目錄三 bs架構 四 cs架構和bs架構區別 python從入門到放棄完整教程目錄 應用領域 應用領域 計算機發展初期使用者去取資料,直接就去主機拿,從這裡開始就分出了客戶端和服務端。客戶端 使用者安裝的軟體 服務端 統一管理資料庫的主機中的軟體就叫做服務端,再後來服務端不只是管理資料,外加處理業務...
網路架構及其演變過程
應用領域 應用領域 計算機發展初期使用者去取資料,直接就去主機拿,從這裡開始就分出了客戶端和服務端。客戶端 使用者安裝的軟體 服務端 統一管理資料庫的主機中的軟體就叫做服務端,再後來服務端不只是管理資料,外加處理業務邏輯。答 應用領域 統一客戶端即預設安裝使用者電腦中的瀏覽器,訪問同種類的 具體業務...