Python函式裝飾器詳解

2021-10-09 09:42:05 字數 1110 閱讀 3980

3 內建裝飾器

增強函式或類的功能的乙個函式,可以裝飾函式,也可以裝飾類

def

time_decorator

(func)

:#裝飾器

def(

*args,

**kwargs)

:# 在函式前列印開始時間

start_time = time.time(

)print

("start time is:"

, start_time)

# 執行待裝飾函式本身

f = func(

*args,

**kwargs)

# 列印結束時間和執行耗時

end_time = time.time(

)print

("end time is:"

,end_time)

exec_time = end_time - start_time

print

("execute time is : "

, exec_time)

return f

def

function

(x,y,

*args,

**kwargs)

:print

(type

(x))

print

(args)

print

(kwargs)

print

(type

(args)

)#*args返回的是陣列

print

(type

(kwargs)

)#**kwargs返回的字典

function(1,

2,3,

4,5,a=

1,b=

2,c=

3)

(3, 4, 5)

通俗且不咋子準確的概括一下就是:

官方一點來講:

!總結 !

python裝飾器 python 裝飾器詳解

def outer x def inner y return x y return inner print outer 6 5 11 如 所示,在outer函式內,又定義了乙個inner函式,並且inner函式又引用了外部函式outer的變數x,這就是乙個閉包了。在輸出時,outer 6 5 第乙個...

python裝飾器詳解 python裝飾器詳解

按照 python 的程式設計原則,當乙個函式被定義後,如要修改或擴充套件其功能應盡量避免直接修改函式定義的 段,否則該函式在其他地方被呼叫時將無法正常執行。因此,當需要修改或擴充套件已被定義的函式的功能而不希望直接修改其 時,可以使用裝飾器。先來看乙個簡單的例子 def func1 functio...

詳解Python裝飾器

裝飾器的難點 在梳理了裝飾器的整個內容之後,我認為難點不是裝飾器本身,而是直接呼叫被裝飾的函式,讓人無法理解背後究竟發生了什麼。一 引出裝飾器概念 引入問題 定義了乙個函式,想在執行時動態的增加功能,又不想改動函式本身的 示例 希望對下列函式呼叫增加log功能,列印出函式呼叫 def f1 x re...