[Python进阶] 用上下文管理器实现代码片段计时功能

2.15 用上下文管理器实现代码片段计时功能

之前我们介绍过上下文管理器,由于进入和退出上下文管理器时,都会调用上下文管理器相应的方法,我们可以利用这种特性,创建一个可以给代码片段计时的上下文管理器对象。如下:

class csTimeit:
    def __init__(self):
        print('__init__ 方法被调用啦!')
self.timeitname = 'timeit'
    def __enter__(self):
        import time
        print("__enter__ 方法被调用啦!")
        self.begin = time.time()
        return self
    def __exit__(self, err_of_type, err_of_value, err_of_trace):
        import time
        print("__exit__ 方法被调用啦!")
        print(f'运行结束,目标代码片段总耗时:{time.time() - self.begin:.4f} 秒')
with csTimeit() as ct:
    import time
    time.sleep(1)
    # do something
print(ct.timeitname)

init 方法被调用啦!
enter 方法被调用啦!
timeit
exit 方法被调用啦!
运行结束,目标代码片段总耗时:1.0004 秒

你可能感兴趣的:(Python进阶,#,二,python,开发语言,Python进阶,Python技巧)