最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

使用Python統(tǒng)計(jì)函數(shù)執(zhí)行時(shí)間的裝飾器

2023-09-07 20:58 作者:littersho  | 我要投稿

裝飾器的使用場(chǎng)景:

為函數(shù)新增功能,解決重復(fù)性的操作,使得代碼簡(jiǎn)潔,更模塊兒化

裝飾器本質(zhì)上是一個(gè)Python函數(shù),

它可以在不改變?cè)己瘮?shù)的情況下,添加一些額外的功能,例如日志記錄、緩存結(jié)果,以及計(jì)算函數(shù)的運(yùn)行時(shí)間。

接收另一個(gè)函數(shù)作為參數(shù),并返回一個(gè)新函數(shù)。

在Python中,可以使用@符號(hào)放置在要被裝飾的函數(shù)前面,將一個(gè)裝飾器應(yīng)用到一個(gè)函數(shù)上。


以下是一個(gè)簡(jiǎn)單的計(jì)時(shí)裝飾器的例子:

import time?

def calculate_time(func): ? ?

? ?def wrapper(*args, **kwargs): ? ? ? ?

? ? ? start = time.time() ? ? ? ?

? ? ? result = func(*args, **kwargs) ? ? ? ?

? ? ? end = time.time()?

? ? ? cost_time =?end - start??

? ? ??print(“花費(fèi)時(shí)間:{}秒”.format(cost_time)")???? ? ??

? ? ? return result ? ?

? ? return wrapper?

  • calculate_time()是一個(gè)裝飾器函數(shù),它接受一個(gè)函數(shù)作為輸入?yún)?shù),并且返回一個(gè)新的函數(shù)wrapper。

  • wrapper()可以接收任何數(shù)量和類型的輸入?yún)?shù),并在執(zhí)行原始函數(shù)之前記錄起始時(shí)間。然后執(zhí)行原始函數(shù),獲取函數(shù)的結(jié)果;最后記錄結(jié)束時(shí)間,并計(jì)算函數(shù)的運(yùn)行時(shí)間。運(yùn)行時(shí)間輸出到控制臺(tái),然后返回原始函數(shù)的結(jié)果。

  • 裝飾器最終會(huì)返回新的函數(shù)wrapper,因此它將替換原始函數(shù)。

  • 使用“@calculate_time”將裝飾器應(yīng)用于需要計(jì)算運(yùn)行時(shí)間的函數(shù)。


@calculate_time?

def myfunc(): ? ?

? ?time.sleep(1) ? ?

? ?print("Function executed")?


myfunc()

使用Python統(tǒng)計(jì)函數(shù)執(zhí)行時(shí)間的裝飾器的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
慈利县| 湘阴县| 松江区| 石门县| 乡宁县| 灵石县| 柯坪县| 德格县| 长垣县| 右玉县| 浪卡子县| 岳阳县| 南木林县| 峨边| 洪江市| 乌兰浩特市| 鄄城县| 杭锦后旗| 长武县| 玉环县| 丁青县| 正阳县| 巩留县| 沂南县| 台中县| 莲花县| 安塞县| 曲沃县| 巴林左旗| 衡东县| 普兰县| 曲靖市| 东兰县| 抚顺县| 札达县| 临猗县| 西平县| 宣武区| 奉节县| 丰都县| 肥西县|