python 中多個裝飾器的執行順序

2022-08-10 10:39:06 字數 1092 閱讀 5545

python 中多個裝飾器的執行順序:

def inner1(*args,**kwargs):

print('in inner1')

ret = f1(*args,**kwargs)

print('111')

return ret

return inner1

def inner2(*args,**kwargs):

print('in inner2')

ret = f2(*args,**kwargs)

print('222')

return ret

return inner2

def inner3(*args,**kwargs):

print('in inner3')

ret = f3(*args,**kwargs)

print('333')

return ret

return inner3

def func(): # 先執行離被裝飾函式最近的那個裝飾器

print('in func')

func() #4 func = inner1

#5 執行func() 即 執行inner1()-->列印in inner1 --> 執行f1()即執行inner2()-->列印in inner2-->執行f2()即執行inner3()-->列印in inner3-->

#6 -->執行f3()即執行func()-->列印in func-->列印333-->inner3執行完畢,返回到inner2-->列印222-->inner2執行完畢,返回到inner1-->

#7 -->列印111-->inner1執行完畢-->程式執行完畢

# 結果:

# in inner1

# in inner2

# in inner3

# in func

# 333

# 222

# 111

# 裝飾器函式在被裝飾函式定義好後立即執行。多個裝飾器的呼叫順序是自下往上的(裝飾器裝飾函式時的上下順序)。

# 被裝飾函式執行時,裝飾器的執行順序是從上往下的(裝飾器裝飾函式時的上下順序,和裝飾器函式定義順序無關)。

python中多個裝飾器的執行順序

1.執行順序 當乙個程式裡面有多個裝飾器的時候如何執行的呢,借助乙個程式來理解一下 def decorator a func print get in decorator a def inner a args,kwargs print get in inner a res func args,kwa...

python中多個裝飾器的執行順序詳解

裝飾器是程式開發中經常會用到的乙個功能,也是python語言開發的基礎知識,如果能夠在程式中合理的使用裝飾器,不僅可以提高開發效率,而且可以讓寫的 看上去顯的高大上 使用場景 可以用到裝飾器的地方有很多,簡單的舉例如以下場景 今天講一下python中裝飾器的執行順序,以兩個裝飾器為例。裝飾器 如下 ...

Python 多個裝飾器的執行順序

一.多個裝飾器的的執行順序 接下來我們以例子來檢視執行順序 def decorator a func print get in decorator a def inner a args,kwargs print get in inner a res func args,kwargs return r...