裝飾器模式(decorator pattern)允許向乙個現有的物件新增新的功能,同時又不改變其結構。
#計時器裝飾器
deffn_timer
(function)
:import time
deffunction_timer
(*args,
**kwargs)
: t0 = time.time(
) result = function(
*args,
**kwargs)
t1 = time.time(
)print
("total time:"
.format
(t1-t0)
)return result
return function_timer
使用裝飾器的時候,在需要裝飾的函式前增加@fn_timer即可。
result = function(
*args,
**kwargs)
#此處的function,為需要裝飾的函式,也就是原來的函式
return result
#此處result可以返回乙個值出去,此處的值,為函式本身的返回值
python裝飾器分析 Python裝飾器舉例分析
概述 裝飾器本質上是乙個python函式,它可以讓其他函式在不需要做任何 變動的前提下增加額外功能,裝飾器的返回值也是乙個函式物件。我們要需要乙個能測試函式執行時間的decorator,可以定義如下 def timer func start time time.time res func args,...
python裝飾器 Python 裝飾器
簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...
python裝飾器 裝飾器
由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...