无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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)遵守國家法律
郯城县| 武川县| 微山县| 长乐市| 敖汉旗| 上高县| 屯门区| 湘阴县| 嵩明县| 胶州市| 樟树市| 厦门市| 泰和县| 萍乡市| 新野县| 江西省| 邳州市| 南丰县| 台中市| 噶尔县| 永善县| 钦州市| 富顺县| 潢川县| 泗阳县| 嘉义县| 沈丘县| 梅河口市| 屯门区| 琼海市| 韩城市| 晋中市| 安乡县| 漾濞| 武平县| 海原县| 岱山县| 开化县| 哈尔滨市| 大安市| 榆林市|