def metric(fn):
start_time = time.time() #记录起始时间
@functools.wraps(fn) #将原始函数(fn)的__name__复制到wraps
def wrapper(*args, **kw): #定义装饰器(其中参数可为任意值)
result = fn(*args, **kw) #将参数代入原始函数并赋值给result
end_time = time.time() #此时已运行了原始函数(fn),可以记录结束时间了
print('%s() executed in %s ms' % (fn.__name__, end_time - start_time)) #这是装饰器的主体功能:“打印时间差”
return result #这是装饰器的返回值,返回result(就是原始函数的结果)
return wrapper #只是metric函数的返回,就是调用了装饰器函数
def metric(fn): #这个才是定义装饰函数
def wrapper(*args, **kw): #这个是定义装饰器函数内部的一个封装函数
Sign in to make a reply
o0stanley0o
def metric(fn):
start_time = time.time() #记录起始时间
@functools.wraps(fn) #将原始函数(fn)的__name__复制到wraps
def wrapper(*args, **kw): #定义装饰器(其中参数可为任意值)
result = fn(*args, **kw) #将参数代入原始函数并赋值给result
end_time = time.time() #此时已运行了原始函数(fn),可以记录结束时间了
print('%s() executed in %s ms' % (fn.__name__, end_time - start_time)) #这是装饰器的主体功能:“打印时间差”
return result #这是装饰器的返回值,返回result(就是原始函数的结果)
return wrapper #只是metric函数的返回,就是调用了装饰器函数