python教程:有参装饰器
生活随笔
收集整理的這篇文章主要介紹了
python教程:有参装饰器
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
由于語(yǔ)法糖@的限制,outter函數(shù)只能有一個(gè)參數(shù),并且該才是只用來(lái)接收被裝飾對(duì)象的內(nèi)存地址
def outter(func):def wrapper(*args,**kwargs):res=func(*args,**kwargs)return resreturn wrapper@outter def index(x,y):print(x,y)語(yǔ)法糖
''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' def auth(db_type):def deco(func):def wrapper(*args, **kwargs):name = input('your name>>>: ').strip()pwd = input('your password>>>: ').strip()if db_type == 'file':print('基于文件的驗(yàn)證')if name == 'egon' and pwd == '123':res = func(*args, **kwargs) return reselse:print('user or password error')elif db_type == 'mysql':print('基于mysql的驗(yàn)證')else:print('不支持該db_type')return wrapperreturn deco@auth(db_type='file') def index(x, y):print('index->>%s:%s' % (x, y))@auth(db_type='mysql') def home(name):print('home->>%s' % name)# index(1, 2) # home('egon')有參裝飾器模板
def 有參裝飾器(x,y,z):def outter(func):def wrapper(*args, **kwargs):res = func(*args, **kwargs)return resreturn wrapperreturn outter@有參裝飾器(1,y=2,z=3) def 被裝飾對(duì)象():pass總結(jié)
以上是生活随笔為你收集整理的python教程:有参装饰器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python叠加装饰器,三元表达,生成,
- 下一篇: Python储备知识与装饰器