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...