import time
import random
from functools import wraps
def avgTime(func,times=5):
@wraps(func)
def wrapper():
avg_interval = 0
for i in range(times):
start = time.time()
func()
stop = time.time()
interval = stop - start
print(f'第{i+1}次运行了{interval}秒')
avg_interval += interval
avg_interval /= times
print(f'平均运行了{avg_interval}秒')
return wrapper
@avgTime
def work():
time.sleep(random.random())
work()
2
yanyu-xin
2023-02-08来自广东
import time
from functools import wraps
def time_it(func):
@wraps(func)
def wrapper():
t = 0
for i in range(5):
start = time.time()
func()
stop = time.time()
t = t + (stop - start)
ave = t / 5
print(f'func 函数平均执行时间{ave}秒')
return wrapper
@time_it
def func_1():
print('func_1 开始')
time.sleep(1)
print('func_1 结束')
func_1()
1
Calvin
2022-12-18来自广东
import random
import time
from functools import wraps
def multi_run_avg(cnt: int):
def time_it(func):
@wraps(func)
def wrapper():
start = time.time()
for _ in range(cnt):
func()
stop = time.time()
print(f"func runs {cnt} times, and its average run time is {round((stop - start) / cnt, 2)} secs.")
return wrapper
return time_it
@multi_run_avg(5)
def work():
print("func work start...")
time.sleep(random.randint(1, 3))
print("func work stop!")
work()
# print(work.__name__)
1
acondess
2023-09-07来自浙江
import time
from functools import wraps
def time_five(func):
@wraps(func)
def wrapper():
start = time.time()
for x in range(5):
func()
stop = time.time()
print(f"func函数执行了{int(stop-start)}秒\n")
print(f"运行五次func函数平均运行时间{int((stop-start) * 0.2)}秒")
return wrapper
@time_five
def work():
print("func开始执行")
time.sleep(2)
print("func结束执行")
work()
Guan YD
2023-08-15来自陕西
import time
def a(func):
def b():
list1 = []
for i in range(5):
print(f"程序运行第{i+1}遍")
start = time.time()
func()
end = time.time()
list1.append(int(end - start))
avg_all = sum(list1) / 5
return avg_all
return b
@a
def c():
print("延迟2秒")
time.sleep(2)
print(c())
Geek_Mike
2023-07-23来自云南
# 请你定义一个装饰器,可以让函数运行 5 遍,并输出平均运行时间。
from random import uniform
import time
from functools import reduce, wraps
def func_time(func):
@wraps(func)
def wrapper():
time_list = []
for i in range(5):
start = time.time()
func()
stop = time.time()
a = float(stop - start)
time_list.append(a)
x = float(reduce(lambda x,y: x+y, time_list)/5)
print(f'函数 {func_list.__name__} 的平均执行时间是 {x:.6f}')
return wrapper
@func_time
def func_list():
lst = []
for i in range(5):
random_float = uniform(0,10)
lst.append(random_float)
return
func_list()
Greenery
2023-07-18
from random import random
from time import sleep, time
def calc_avg(n):
def decorate(func):
def wrapper():
sum = 0.0
for _ in range(n):
start = time()
func()
sum += time() - start
print(f"Execute {n} times, average run time is {sum / n:.2f}s.")
return wrapper
return decorate
@calc_avg(5)
def random_work():
slp_time = random() * 5
print(f"This time used {slp_time:.2f}s.")
sleep(slp_time)
random_work()
黄英镑
2023-06-13来自广东
from functools import wraps
import time
def countAvgRunTime(times: int):
def wrapper(func):
@wraps(func)
def decorated(*args, **kwargs):
runTimeSum = 0
for t in range(times):
start = time.time()
func(*args, **kwargs)
stop = time.time()
runTimeSum += (stop - start)
print(f'平均运行和时间{runTimeSum / times}')
return decorated
return wrapper
@countAvgRunTime(times=5)
def sleep():
time.sleep(1)
sleep()
Iris
2023-05-29来自上海
老师讲得通俗易通!!
GeekNEO
2023-03-02来自浙江
import random
import time
from functools import wraps
def multi_run_avg(cnt: int):
def time_it(func):
@wraps(func)
def wrapper():
start = time.time()
for _ in range(cnt):
func()
stop = time.time()
print(f"func runs {cnt} times, and its average run time is {round((stop - start) / cnt, 2)} secs.")
return wrapper
return time_it
@multi_run_avg(5)
def work():
time.sleep(random.random())
work()