python裝飾器作用 python裝飾器有什麼用

2021-10-10 03:53:50 字數 1271 閱讀 5488

簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的**前提下給函式增加新的功能。

一般而言,我們要想拓展原來函式**,最直接的辦法就是侵入**裡面修改,例如:import time

def func():

print("hello")

time.sleep(1)

print("world")

這是我們最原始的的乙個函式,然後我們試圖記錄下這個函式執行的總時間,那最簡單的做法就是:#原始侵入,篡改原函式

import time

def func():

starttime = time.time()

print("hello")

time.sleep(1)

print("world")

endtime = time.time()

msecs = (endtime - starttime)*1000

print("time is %d ms" %msecs)

但是如果你的boss在公司裡面和你說:「小祁,這段**是我們公司的核心**,你不能直接去改我們的核心**。」那該怎麼辦呢,我們仿照裝飾器先自己試著寫一下:#避免直接侵入原函式修改,但是生效需要再次執行函式

import time

def deco(func):

starttime = time.time()

func()

endtime = time.time()

msecs = (endtime - starttime)*1000

print("time is %d ms" %msecs)

def func():

print("hello")

time.sleep(1)

print("world")

if __name__ == '__main__':

f = func

deco(f)#只有把func()或者f()作為引數執行,新加入功能才會生效

print("f.__name__ is",f.__name__)#f的name就是func

這裡我們定義了乙個函式deco,它的引數是乙個函式,然後給這個函式嵌入了計時功能。然後你可以拍著胸脯對老闆說,看吧,不用動你原來的**,照樣拓展了它的函式功能。

更多學習內容,python學習網。

python裝飾器副作用 python裝飾器

python裝飾器是高階函式 但裝飾器是對傳入函式的功能的增強,用於拓展原函式功能的函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。裝飾器語法糖 使用 logger,這就是裝飾器語法 例 記錄函式的執行時常 pytho...

python裝飾器作用 理解python中的裝飾器

一 什麼是裝飾器?正如其名,裝飾器的作用是為已經存在的物件增加額外功能 裝飾 由此可使已有函式在無需 改動的情況下增加額外功能 裝飾器的本質是巢狀的函式且返回函式物件,即閉包。有關閉包的概念,可參考 理解python中的閉包 一文。二 裝飾器應用場景舉例 在介紹裝飾器之前,我們思考下遇到如下場景時的...

Python裝飾器中 wraps作用

裝飾器的作用 在不改變原有功能 的基礎上,新增額外的功能,如使用者驗證等。wraps view func 的作用 不改變使用裝飾器原有函式的結構 如name,doc 不使用 wraps裝飾器時候,看看 name doc 輸出的內容是什麼def decorator func this is decor...