def print_run_time(func): def wrapper(*args, **kw): local_time = time.time() func(*args, **kw) print('Function [%s] run time is %.2f s' % (func.__name__, time.time() - local_time)) return wrapper
简单的计算方法耗时
import time
def decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
func(*args, **kwargs)
print(args, kwargs)
end_time = time.time()
print(end_time - start_time)
return wrapper
@decorator
def func(name):
time.sleep(1)
func(name='方法1') # 函数调用
打印
def outer(outer_args):
'''
带参装饰器
:param outer_args:
:return:
'''
def middle(func):
def wrapper(*args, **kwargs):
print("before func")
print("use args: " + outer_args)
wrapper_result = func(*args, **kwargs)
print("after func")
return wrapper_result
return wrapper
return middle
@outer("hello")
def foo(a, b):
return a + b
res = foo(1, 1)
print(res)