• PatrickL
    2022-12-14 来自上海
    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()
    
    