python装饰器补充
生活随笔
收集整理的這篇文章主要介紹了
python装饰器补充
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
帶參裝飾器
msg = """ 1.QQ 2.wechat """ avg = input('驗(yàn)證方式:')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') :分兩步:
第一步先執(zhí)行auth('wechat')函數(shù),得到返回值auth2
第二步@與auth2結(jié)合,形成裝飾器@auth2 然后在依次執(zhí)行。
多個裝飾器裝飾一個函數(shù)
def wrapper1(func):def inner1(*args,**kwargs):print("這是裝飾器一開始")func(*args,**kwargs)print("這是裝飾器一結(jié)束")return inner1def wrapper2(func): def inner2(*args,**kwargs):print("這是裝飾器二開始")func(*args,**kwargs)print("這是裝飾器二結(jié)束")return inner2@wrapper1 @wrapper2 def func():print("這是被裝飾的函數(shù)")func() # 結(jié)果: 這是裝飾器一開始 這是裝飾器二開始 這是被裝飾的函數(shù) 這是裝飾器二結(jié)束 這是裝飾器一結(jié)束Python規(guī)定多個裝飾器裝飾一個函數(shù)的時候先執(zhí)行離被裝飾的函數(shù)最近的裝飾器
轉(zhuǎn)載于:https://www.cnblogs.com/lifangzheng/p/11252251.html
總結(jié)
以上是生活随笔為你收集整理的python装饰器补充的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持第三人称!《生化危机8:村庄 黄金版
- 下一篇: python软件开发规范