python实现计时器(装饰器)
以上都是抄写与整理,学习中...5,函数运行总时间的装饰器。4,打印当前时间的装饰器。
·
1, Python时间装饰器_BurningSilence的博客-CSDN博客_python 时间装饰器
from functools import wraps
import time
# time装饰器
def timer(func):
@wraps(func)
def wrap(*args, **kwargs):
begin_time = time.perf_counter()
result = func(*args, **kwargs)
start_time = time.perf_counter()
print('func:%r args:[%r, %r] took: %2.4f sec' % (func.__name__, args, kwargs, start_time - begin_time))
return result
return wrap
@timer
def waste_some_time(num):
my_list = []
for i in range(num):
my_list.append(i)
return my_list
if __name__ == '__main__':
arr = waste_some_time(1000)
print(arr)
2,python 函数执行时间装饰器_Charlie.Cheung的博客-CSDN博客_python 时间装饰器
import time
def timeit(func):
def wrapper(*args, **kwargs):
name = func
for attr in ('__qualname__', '__name__'):
if hasattr(func, attr):
name = getattr(func, attr)
break
print("Start call: {}".format(name))
now = time.time()
result = func(*args, **kwargs)
using = (time.time() - now) * 1000
msg = "End call {}, using: {:.1f}ms".format(name, using)
print(msg)
return result
return wrapper
@timeit
def hello_world():
time.sleep(2)
print('hello world')
if __name__ == '__main__':
hello_world()
import time
# 装饰器run_time,@run_time加在谁头上,谁就是参数fun
def run_time(fun):
start_time = time.time()
fun()
end_time = time.time()
print("程序运行时间为:{} 秒".format(str(round((end_time - start_time), 1))))
return end_time - start_time
# 耗时任务task
@run_time
def task():
time.sleep(3)
4,打印当前时间的装饰器
import time
def func_time(func):
def inner(*args,**kw):
now_time = time.localtime()
print('函数开始运行的时间为:',time.strftime('%Y:%m:%d %H:%M:%S',now_time))
func(*args,**kw)
return inner
@func_time
def sum(x,y):
print(x,y)
sum(4,7)
#运行结果
函数开始运行的时间为:2018:11:23 14:36:59
11
5,函数运行总时间的装饰器
import time
def func_time(func):
def inner(*args,**kw):
start_time = time.time()
func(*args,**kw)
end_time = time.time()
print('函数运行时间为:',end_time-start_time,'s')
return inner
@func_time
def sum(x):
for i in range(1,x+1):
for j in range(1,i+1):
print(j,'*', i, '=',i*j,end=' ')
print()
sum(9)
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
函数运行时间为: 0.0009999275207519531 s
6,https://www.jb51.net/article/237300.htm
# 涉及到计时,需要引入time模块
import time
# 定义一个对函数运行耗时统计的计时器,用func作为形参来代替需要统计的函数
def time_master(func):
def call_func():
print("计时器开始:函数开始调用:")
start_time = time.time()
func()
end_time = time.time()
print('计时器结束,函数调用完成')
return print(f'计时器结果返回:函数调用耗时{end_time-start_time:.2f}')
return call_func
@time_master
# 即在调用myfunc函数时,不是直接调用myfunc
# 而是将myfunc函数作为一个参数放入到@的装饰器中,然后去调用装饰器
def myfunc():
time.sleep(2)
print('myfunc函数运行')
time.sleep(4)
print('myfunc函数运行结束')
myfunc() # 调用myfunc
以上都是抄写与整理,学习中...
更多推荐
已为社区贡献2条内容
所有评论(0)