python中裝飾器的理解與使用詳解
更新時間:2023年07月27日 09:11:40 作者:晚風吹兒
這篇文章主要介紹了python中裝飾器的理解與使用詳解,裝飾器本質上是一個閉包函數,其作用在于可以為其他函數增加額外功能,裝飾器的返回值是一個函數對象,需要的朋友可以參考下
一、裝飾器
裝飾器是給現有的模塊增添新的小功能,可以對原函數進行功能擴展,而且還不需要修改原函數的內容,也不需要修改原函數的調用
裝飾器本質上是一個閉包函數,其作用在于可以為其他函數增加額外功能,裝飾器的返回值是一個函數對象
二、定義一個裝飾器
1.裝飾器格式
代碼如下(示例):
def 裝飾器名(func): def wrapper(*args, **kwargs): #額外功能的代碼 ... return func(*args, **kwargs) return wrapper
2.裝飾器示例
代碼如下(示例):
def logger(func): def wrapper(*args, **kwargs): """wrapper注釋""" start_time = time.time() res = func(*args, **kwargs) end_time = time.time() print("函數名:{}".format(func.__name__)) print("函數注釋內容:{}".format(func.__doc__)) print("入參 args :{}".format(args)) print("入參 kwargs :{}".format(kwargs)) print("返回值:{}".format(res)) print("函數執(zhí)行耗時:{:.6f}".format(start_time - end_time)) return res return wrapper
3.裝飾器調用
代碼如下(示例):
@logger def test_one(): "我是第一個裝飾器" print("我調用了裝飾器")
4.裝飾器運行后輸出
三、 總結
1、裝飾器是一個閉包函數,包括內嵌函數,返回值是一個函數對象
2、需要裝飾的函數前要加上調用格式:@裝飾器名
到此這篇關于python中裝飾器的理解與使用詳解的文章就介紹到這了,更多相關python中的裝飾器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!