Python计时器使用方法:
# 常规方法(函数的任何位置都可以调用)
def fn_timer(function):
@wraps(function)
def function_timer(*args, **kwargs):
t0 = time.time()
result = function(*args, **kwargs)
t1 = time.time()
logger.info(total time running %s: %s seconds" %
(function.__name__, str(t1 - t0)))
return result
return function_timer
def fn_timer(function):
@wraps(function)
def function_timer(*args, **kwargs):
t0 = time.time()
result = function(*args, **kwargs)
t1 = time.time()
# 函数所在的类中存在id,即可调用
logger.info(f"{args[0].id} -- total time running %s: %s seconds" %
(function.__name__, str(t1 - t0)))
return result
return function_timer
def fn_timer2(external_id):
def decorator(function):
@wraps(function)
def function_timer(*args, **kwargs):
t0 = time.time()
result = function(*args, **kwargs)
t1 = time.time()
# 将外部参数传入计时器
print(f"{external_id} -- total time running %s: %s seconds" %
(function.__name__, str(t1 - t0))
)
return result
return function_timer
使用方法:
class Test:
def __init__(self, id, name):
self.id = id
self.name = name
@ fn_timer
# @fn_timer2('hh')
def calc_test(self):
print(f'name: {self.name}')