装饰器函数

20200309


  • 例子1
import time


def record_time(func):
    """自定义装饰函数的装饰器"""

    # @wraps(func)
    def inner(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f'{func.__name__}: {time.time() - start}秒')
        return result

    return inner


@record_time
def testfun(t):
    time.sleep(t)
    print("休息了%d秒!" % t)

testfun(2)
print(testfun.__name__)#注意

#输出
休息了2秒!
testfun: 2.0001144409179688秒
inner #注意
  • 例子 2 调用wraps
from functools import wraps
import time


def record_time(func):
    """自定义装饰函数的装饰器"""

    @wraps(func)
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f'{func.__name__}: {time.time() - start}秒')
        return result

    return wrapper


@record_time
def testfun(t):
    time.sleep(t)
    print("休息了%d秒!" % t)

testfun(2)
print(testfun.__name__) #注意

# 输出
休息了2秒!
testfun: 2.000285863876343秒
testfun #注意
  • 参考
https://blog.csdn.net/legend818/article/details/95165703
posted on 2020-03-06 16:27  呼呼小睡  阅读(166)  评论(0编辑  收藏  举报