import time from contextlib import contextmanager @contextmanager def check_time_elapse(seconds:float, op='lt'): """ 检测某一段程序所花费的时间,是否 op 给定的seconds :param seconds: :param str op: :return: """ start = time.time() yield end = time.time() if op == 'lt': assert end-start < seconds, (end-start, seconds) elif op == 'gt': assert end-start > seconds, (end-start, seconds) elif op == 'eq': assert end - start == seconds, (end-start, seconds) elif op == 'le': assert end - start <= seconds, (end-start, seconds) elif op == 'ge': assert end - start >= seconds, (end-start, seconds) else: raise ValueError("Only supports lt,gt,eq,le,ge.")