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

歡迎光臨散文網(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)遵守國家法律
南江县| 绥阳县| 长子县| 武汉市| 凉山| 湟中县| 资兴市| 盐亭县| 紫阳县| 靖安县| 雷州市| 石楼县| 武邑县| 仁化县| 富源县| 扶余县| 麻江县| 无棣县| 阳江市| 东乡县| 宁阳县| 商丘市| 卢氏县| 荥经县| 康乐县| 华池县| 南靖县| 广汉市| 凤山县| 满洲里市| 中牟县| 铁岭县| 梁河县| 玛纳斯县| 郴州市| 绿春县| 滦平县| 杂多县| 锡林浩特市| 丰城市| 鹤山市|