python中裝飾器之疊加裝飾器(二)

2022-04-11 15:25:52 字數 923 閱讀 7336

當乙個函式疊加了多個裝飾器後,程式會如何執行呢?

疊加裝飾器:

在同乙個被裝飾物件中,新增多個裝飾器,並執行。

@裝飾1

@裝飾2

@裝飾3

def被裝飾物件():

pass注意: 裝飾器在呼叫被裝飾物件時才會執行新增的功能。

裝飾的順序:由下到上(被包裹)

執行的順序:由上倒下(貫穿)

def

def inner1(*args, **kwargs):

print('

我是inner1')

res = func(*args, **kwargs)

print('

我是inner111111111111')

return

res

return

inner1

def

def inner2(*args, **kwargs):

print('

我是inner2')

res = func(*args, **kwargs)

print('

我是inner2222222')

return

res

return

inner2

deffunc1():

print('

我是func1!!!!!!!!!1')

func1()

輸出為:

我是inner2

我是inner1

我是func1!!!!!!!!!1我是inner111111111111

我是inner2222222

python中裝飾器

對修改是封閉的,對擴充套件是開放的 import time def f1 print time.time print this is a function.def f2 print this is a function.print time.time f1 def print current tim...

python中裝飾器詳解

最新學了裝飾器,有乙個疑問一直困擾我,思考了幾天,終於明白。首先,展示正常的裝飾器 允許向乙個現有的物件新增新的功能,同時又不改變其結構,就是給函式穿個衣服,但是不改變函式 該如何寫?def log func print call s func.name return func args,kw 依照...

python中裝飾器理解

裝飾器 decorators 是 python 的乙個重要部分。簡單地說 他們是修改其他函式的功能的函式。他們有助於讓我們的 更簡短!由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 ...