1. 程式人生 > >python中初級裝飾器總結

python中初級裝飾器總結

http 目前 pri span 做的 輸出 rgs bsp col

打印 args 與 *args 的區別

1 #打印時區別
2 def outer(*args, **kwargs):
3     print(args)         #輸出結果:(1, 2, 3, 4)
4     print(*args)        #輸出結果:1 2 3 4
5 
6 outer(1,2,3,4)
 1 #函數調用時區別
 2 def outer(*args, **kwargs):
 3     print(args)
 4     print(*args)        #也是調用函數,調用的是print函數
 5 
 6 outer([1,2,3,4])        #
輸出結果:([1, 2, 3, 4],) 7 # [1, 2, 3, 4] 8 9 outer(*[1,2,3,4]) #輸出結果:(1, 2, 3, 4) 10 # 1 2 3 4 11 #等價於outer(1,2,3,4),以及outer(*(1,2,3,4))

規律

 1 def outer(*args, **kwargs):
 2     print(args)
 3     print
(*args) #也是調用函數,調用的是print函數 4 def inner(*args): 5 print(inner:,args) 6 inner(*args) 7 8 outer(1,2,3,4) #輸出結果:(1, 2, 3, 4) 9 # # 1 2 3 4 10 # # inner: (1, 2, 3, 4) 在被傳參時聚合

總體

技術分享圖片

def wrapper(func):
    
def inner(*args,**kwargs): print(在被裝飾的函數執行之前做的事) ret = func(*args,**kwargs) print(在被裝飾的函數執行之後做的事) return ret return inner @wrapper def func(day): print(python目前是排名第{}的語言.format(day)) return 所以我們一定要堅持學習python ret = func(4) print(ret)

python中初級裝飾器總結