python裝飾器使用實例詳解
這篇文章主要介紹了python裝飾器使用實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
python裝飾器的作用就是在不想改變原函數(shù)代碼的情況下,增加新的功能.主要應用了python閉包的概念,現(xiàn)在用1個小例子說明
import time
def foo():
time.sleep(1)
def bar():
time.sleep(2)
def show_time(f):
def inner():
start_time = time.time()
f()
end_time = time.time()
print(end_time-start_time)
return inner
#show_time(f) is a decoration function
foo = show_time(foo)
bar = show_time(bar)
foo()
bar()
上面的代碼定義了兩個函數(shù)foo()和bar(). 通過裝飾器函數(shù)show_time(f),在其內(nèi)部定義了另一個閉包函數(shù)inner(),再通過foo=show_time(foo),bar=show_time(bar)語句將foo()和bar()函數(shù)同裝飾器函數(shù)關聯(lián)起來,從而實現(xiàn)了不改變foo()和bar()函數(shù)代碼,增加打印程序執(zhí)行時間的功能.程序的執(zhí)行結(jié)果如下:
1.0011370182 2.00142788887
顯然,程序在沒有改變原函數(shù)的情況下,實現(xiàn)了調(diào)用原函數(shù)顯示程序運行時間的功能.
上面的小程序可以將調(diào)用裝飾器的語句改成@decoration的形式,效果是造價的,改變后的程序如下,其功能和上面的程序完全相同.
import time
@show_time #foo = show_time(foo)
def foo():
time.sleep(1)
@show_time #bar = show_time(bar)
def bar():
time.sleep(2)
def show_time(f):
def inner():
start_time = time.time()
f()
end_time = time.time()
print(end_time-start_time)
return inner
#show_time(f) is a decoration function
foo()
bar()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python針對給定字符串求解所有子序列是否為回文序列的方法
這篇文章主要介紹了Python針對給定字符串求解所有子序列是否為回文序列的方法,涉及Python針對字符串的遍歷、判斷、運算相關操作技巧,需要的朋友可以參考下2018-04-04
Python網(wǎng)絡編程之HTTP協(xié)議的python應用
HTTP是在網(wǎng)絡上傳輸HTML的協(xié)議,用于瀏覽器和服務器的通信,這篇文章主要介紹了Python網(wǎng)絡編程之HTTP協(xié)議的python應用,需要的朋友可以參考下2022-11-11
Anaconda安裝以及修改環(huán)境默認位置圖文教程
Anaconda是一個用于科學計算的Python發(fā)行版,支持Linux,Mac, Windows, 包含了眾多流行的科學計算、數(shù)據(jù)分析的 Python 包,下面這篇文章主要給大家介紹了關于Anaconda安裝以及修改環(huán)境默認位置的相關資料,需要的朋友可以參考下2023-04-04
Python利用三層神經(jīng)網(wǎng)絡實現(xiàn)手寫數(shù)字分類詳解
這篇文章主要介紹了如何設計一個三層神經(jīng)網(wǎng)絡模型來實現(xiàn)手寫數(shù)字分類。本文給大家介紹的非常詳細,感興趣的小伙伴快來跟小編一起學習一下2021-11-11
Python將HTML快速轉(zhuǎn)換成PDF的方法實現(xiàn)
在Web開發(fā)和報告任務中,將HTML內(nèi)容轉(zhuǎn)換為PDF是一種常見需求,本文主要介紹了Python將HTML快速轉(zhuǎn)換成PDF的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01
Python的pdfplumber庫將pdf轉(zhuǎn)為圖片的實現(xiàn)
本文主要介紹了Python的pdfplumber庫將pdf轉(zhuǎn)為圖片的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06

