91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現decorator高階函數?

發布時間:2020-05-26 14:48:20 來源:億速云 閱讀:245 作者:鴿子 欄目:編程語言

1 有參數的裝飾器 --> 高階函數

2 執行時間 --> time 庫

上代碼:

from functools import wraps
import time

# 面向對象寫法
class TakeTime:
    def __init__(self, para: int):
        self.para = para

    def __call__(self, func):
        @wraps(func)
        def wrapped(*args, **kwargs):
            start_time = time.time()
            name = func.__name__
            func(*args, **kwargs)
            count_time = time.time() - start_time
            if self.para >= count_time:
                print("the {name} take {time}, less time".format(name=name, time=count_time))
            else:
                print("the {name} take {time}, more time".format(name=name, time=count_time))
            return func
        return wrapped

# 常規寫法
def func_time(para: int):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            start_time = time.time()
            name = func.__name__
            func(*args, **kwargs)
            count_time = time.time() - start_time
            if para >= count_time:
                print("the {name} take {time}, less time".format(name=name, time=count_time))
            else:
                print("the {name} take {time}, more time".format(name=name, time=count_time))
            return func
        return wrapper
    return decorator

@TakeTime(10)
def log():
    for x in range(10):
        time.sleep(0.5)

@func_time(10)
def log1():
    for x in range(10):
        time.sleep(0.5)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

旬邑县| 刚察县| 青浦区| 辽宁省| 高台县| 承德市| 武义县| 五大连池市| 泸定县| 米林县| 淳化县| 基隆市| 东安县| 清水河县| 万州区| 沁水县| 华蓥市| 塔城市| 明溪县| 宜昌市| 合作市| 宁城县| 密山市| 丰顺县| 炎陵县| 成都市| 浏阳市| 溧水县| 光泽县| 盱眙县| 磴口县| 旬邑县| 光山县| 和龙市| 集安市| 晴隆县| 上犹县| 于田县| 鄂伦春自治旗| 榆树市| 大英县|