python3-day4(装饰器)
生活随笔
收集整理的這篇文章主要介紹了
python3-day4(装饰器)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一.基本
第一波 #### def foo():print 'foo'foo???? #表示是函數(shù) foo()?? #表示執(zhí)行foo函數(shù)#### 第二波 #### def foo():print 'foo'foo = lambda x: x + 1foo()?? # 執(zhí)行下面的lambda表達(dá)式,而不再是原來(lái)的foo函數(shù),因?yàn)楹瘮?shù) foo 被重新定義了
二.example
#一個(gè)參數(shù) def w1(func): #func = f1def inner(arg): #arg是f1的參數(shù)print('auth %s'%arg) #新增加內(nèi)容return func(arg) #運(yùn)行老f1return inner #返回inner給新的f1@w1 def f1(arg):print('f1 %s'%arg)f1('alex') #運(yùn)行新的F1了 #二個(gè)參數(shù)def w2(func):def inner(arg1,arg2):print("auth %s,%s"%(arg1,arg2))return func(arg1,arg2)return inner@w2 def f2(arg1,arg2):print("f2 %s,%s"%(arg1,arg2))f2('tom','boy') #N個(gè)參數(shù) def w3(func):def inner(*args,**kwargs):print('auth')return func(*args,**kwargs)return inner@w3 def f3(arg1,arg2,arg3):print("f3 %s,%s,%s"%(arg1,arg2,arg3))f3('tom','is','boy')#一個(gè)函數(shù)被多個(gè)裝飾器裝飾 def w1(func):def inner(*args,**kwargs):print('w1')return func(*args,**kwargs)return innerdef w2(func):def inner(*args,**kwargs):print('w2')return func(*args,**kwargs)return inner@w1 @w2 def f3(arg1,arg2,arg3):print("f3 %s,%s,%s"%(arg1,arg2,arg3))f3('tom','is','boy')#通用裝飾器 def Before(request,kargs):print('before')def After(request,kargs):print('after')def Filter(before_func,after_func):def outer(main_func):def wrapper(request,kargs):before_result = before_func(request,kargs)main_result = main_func(request,kargs)after_result = after_func(request,kargs)return wrapperreturn outer@Filter(Before, After) def Index(request,kargs):print('index')Index('a','b')
?
轉(zhuǎn)載于:https://www.cnblogs.com/weibiao/p/5225897.html
總結(jié)
以上是生活随笔為你收集整理的python3-day4(装饰器)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JS 计算日期天数差
- 下一篇: word2003设置页码不从第一页开始的