python學習日記:day11-----裝飾器

來源:互聯網
上載者:User

標籤:調用   添加   post   執行   函數名   star   python學習   rap   修改   

1,time模組
import timeprint(time.sleep())#讓程式在執行到這個位置到時候停一會print(‘哈哈哈‘)

 

擷取目前時間
import timetime.time()#擷取目前時間
一個函數的執行時間:
def func():    start =time.time()    print(‘啊哈哈哈哈哈‘)        time.sleep(0.01)    end =time.time()    print(end-start)func()

 裝飾器

import timedef func():time.sleep(0.01)print(‘老闆好‘)def timmer(f):#裝飾器函數    def inner():        start=time.time()        f()#被裝飾的函數        end =time.time()        print(end-start)    return innerfunc =timmer(func)func()    

 

裝飾器的作用#不想修改函數的調用方式,但是還想在原來的函數前後添加功能#timmer就是一個裝飾器函數,只是對一個函數有一些裝飾作用。 開放封閉原則#開放:對拓展是開放的#封閉:對修改是封閉的 文法糖
import timeprint(time.time()) # 擷取目前時間time.sleep(10)  #讓程式在執行到這個位置的時候停一會兒def timmer(f):    #裝飾器函數    def inner():        start = time.time()        ret = f()       #被裝飾的函數        end = time.time()        print(end - start)        return ret    return inner@timmer         #文法糖 @裝飾器函數名# func = timmer(func)def func():     #被裝飾的函數    time.sleep(0.01)    print(‘老闆好同事好大家好‘)    return ‘新年好‘ret = func()   #inner()print(ret)
裝飾帶參數函數的裝飾器
def timmer(f):    #裝飾器函數    def inner(*args,**kwargs):        start = time.time()        ret = f(*args,**kwargs)  #f(1,2)       #被裝飾的函數        end = time.time()        print(end - start)        return ret    return inner@timmer         #文法糖 @裝飾器函數名def func(a,b):     #被裝飾的函數    time.sleep(0.01)    print(‘老闆好同事好大家好‘,a,b)    return ‘新年好‘ret = func(1)   #inner()print(ret)

裝飾器函數格式:

def wrapper(f):    #裝飾器函數,f是被裝飾的函數    def inner(*args,**kwargs):        ‘‘‘在被裝飾函數之前要做的事‘‘‘        ret = f(*args,**kwargs)    #被裝飾的函數        ‘‘‘在被裝飾函數之後要做的事‘‘‘        return ret    return inner@wrapper         #文法糖 @裝飾器函數名def func(a,b):     #被裝飾的函數    time.sleep(0.01)    print(‘老闆好同事好大家好‘,a,b)    return ‘新年好‘

 

python學習日記:day11-----裝飾器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.