Python 裝飾器示例,計算函數或方法執行時間


# 定義一個計算執行時間的函數作裝飾器,傳入參數為裝飾的函數或方法
def print_execute_time(func):
    from time import time

    # 定義嵌套函數,用來打印出裝飾的函數的執行時間
    def wrapper(*args, **kwargs):
        # 定義開始時間和結束時間,將func夾在中間執行,取得其返回值
        start = time()
        func_return = func(*args, **kwargs)
        end = time()
        # 打印方法名稱和其執行時間
        print(f'{func.__name__}() execute time: {end - start}s')
        # 返回func的返回值
        return func_return

    # 返回嵌套的函數
    return wrapper


# 定義一個隨機數求和的方法,傳入參數是隨機數的個數,加上剛才定義的裝飾器
@print_execute_time
def cal_sum(size):
    from random import random
    li = [random() for i in range(size)]
    return sum(li)


if __name__ == '__main__':
    # 打印一下1000000個的和,同時會顯示執行時間
    print(cal_sum(1000000))

輸出結果:

cal_sum() execute time: 0.19301128387451172s
500049.06074024545


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM