需求:
写一个装饰器当程序运行24小时后自动停止运行+对运行时间自动化计时
import datetime import time def time_printer(): '''运行程序最开始的时间''' now = datetime.datetime.now() return now def loop(): start_time = time_printer() while True: print(1111) # time.sleep(2) # 暂停2秒 end_time = datetime.datetime.now() count_time = (end_time - start_time).seconds #结尾的时间-最开始的时间等于10秒就停止 if count_time == 3600*24: print("总共运行了:{}秒钟".format(count_time)) break if __name__ == "__main__": loop()
# 涉及到计时,需要引入time模块 import time # 定义一个对函数运行耗时统计的计时器,用func作为形参来代替需要统计的函数 def count_time(func): ''' author:多测师_王sir :param func: :return: ''' 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 @count_time # 即在调用myfunc函数时,不是直接调用myfunc # 而是将myfunc函数作为一个参数放入到@的装饰器中,然后去调用装饰器 def myfunc(): print('myfunc函数运行') start_time = time.time() while True: print(111) #执行黛米 end_time = time.time() count = end_time - start_time if count >= 3600*24: break print('myfunc函数运行结束') myfunc() # 调用myfunc