码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器

时间:2018-04-29 18:40:11      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:turn   ora   slow   装饰器   har   run   exec   fun   fast   

练习
请设计一个decorator,它可作用于任何函数上,并打印该函数的执行时间:

# -*- coding: utf-8 -*-
import time, functools

def metric(fn):
    @functools.wraps(fn)
    def wrapper(*args,**kwargs):
        t1=time.time()
        run=fn(*args, **kwargs)
        t2=time.time()
        print(‘%s executed in %s ms‘ % (fn.__name__,t2-t1))
        return run
    return wrapper

# 测试
@metric
def fast(x, y):
    time.sleep(0.0012)
    return x + y;

@metric
def slow(x, y, z):
    time.sleep(0.1234)
    return x * y * z;

f = fast(11, 22)
s = slow(11, 22, 33)
if f != 33:
    print(‘测试失败!‘)
elif s != 7986:
    print(‘测试失败!‘)

  

装饰器

标签:turn   ora   slow   装饰器   har   run   exec   fun   fast   

原文地址:https://www.cnblogs.com/zuxing/p/8971409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!