python装饰器补充
生活随笔
收集整理的這篇文章主要介紹了
python装饰器补充
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
帶參裝飾器
msg = """ 1.QQ 2.wechat """ avg = input('驗證方式:')def auth(avg):def wrapper(f):def inner(*args,**kwargs):if avg == 'QQ':user = input('name')pwd = input('password')if user == 'alex' and pwd == '123456':f()else:print('輸入錯誤')elif avg == 'wechat':user = input('name')pwd = input('password')if user == 'lfz' and pwd == '123456':f()else:print('輸入錯誤')return innerreturn wrapper@auth(avg) #func = auth(avg)(func) def func():print(1)func()@auth('wechat') :分兩步:
第一步先執行auth('wechat')函數,得到返回值auth2
第二步@與auth2結合,形成裝飾器@auth2 然后在依次執行。
多個裝飾器裝飾一個函數
def wrapper1(func):def inner1(*args,**kwargs):print("這是裝飾器一開始")func(*args,**kwargs)print("這是裝飾器一結束")return inner1def wrapper2(func): def inner2(*args,**kwargs):print("這是裝飾器二開始")func(*args,**kwargs)print("這是裝飾器二結束")return inner2@wrapper1 @wrapper2 def func():print("這是被裝飾的函數")func() # 結果: 這是裝飾器一開始 這是裝飾器二開始 這是被裝飾的函數 這是裝飾器二結束 這是裝飾器一結束Python規定多個裝飾器裝飾一個函數的時候先執行離被裝飾的函數最近的裝飾器
轉載于:https://www.cnblogs.com/lifangzheng/p/11252251.html
總結
以上是生活随笔為你收集整理的python装饰器补充的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持第三人称!《生化危机8:村庄 黄金版
- 下一篇: 兴业银行信用卡制卡要多久能到?卡片审核时