python个人学习——装饰器

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

代码:

import functools,time

def metric(func):

def wrapper(*args, **kw):

print('%s executed in %s ms' % (func.__name__, func))

return func(*args, **kw)

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('fail!')

elif s !=7986:

print('fail!')

你可能感兴趣的:(python个人学习——装饰器)