Python裝飾器樣本

來源:互聯網
上載者:User

標籤:import   簡單   div   內容   嵌套   show   logger   imp   lag   

簡單裝飾器實現:

import time#簡單裝飾器def show_time(f):    #嵌套函數    def inner():        begin = time.time()        f()        end = time.time()        print(‘spend %s‘%(end-begin))    return inner@show_time  #foo=show_time(foo)def foo():    print(‘foo...‘)    time.sleep(1)foo()

不定長參數裝飾器:

#不定長參數,功能函數加參數def show_time(f):    #嵌套函數    def inner(*a,**b):        begin = time.time()        f(*a,**b)        end = time.time()        print(‘spend %s‘%(end-begin))    return inner@show_time  #foo=show_time(foo)def foo(*a,**b):    sums=0    for i in a:        sums+=i    print(sums)    time.sleep(1)foo(1,2,3,4,5)

裝飾器函數加參數:

#裝飾器函數加參數def logger(flag):    def show_time(f):        #嵌套函數        def inner(*a,**b):            begin = time.time()            f(*a,**b)            end = time.time()            print(‘spend %s‘%(end-begin))            #判斷flag傳參,之後所做的事情            if flag == ‘true‘:                print(‘哈哈哈哈‘)        return inner    return show_time#傳參為true,則執行logger的內容@logger(‘tru1e‘)  #@show_timedef foo(*a,**b):    sums=0    for i in a:        sums+=i    print(sums)    time.sleep(1)foo(1,2,3,4,5)

 

Python裝飾器樣本

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.