# 任何实现了 __enter__() 和 __exit__() 方法的对象都可称之为上下文管理器
import time
def func(number):
list1 = [1,2,4]
# 递归结束条件
if number < 4:
return list1[number-1]
else:
if number > 3:
# 递归调用函数
return func(number-1) + func(number-2) + func(number-3)
class MyTimer(object):
"""使用上下文管理器实现函数的计时"""
def __init__(self, display_total_time=False):
# 显示计算函数运行时间标志位
self.display_total_time = display_total_time
# 开始时间
self.start_time = None
# 结束时间
self.end_time = None
# 总的毫秒时间
self.total_ms = None
def __enter__(self):
# 记录开始时间
self.start_time = time.time()
# 返回这个实例对象的引用
return self
def __exit__(self, *args):
# 记录结束时间
self.end_time = time.time()
# 总的毫秒时间
self.total_ms = (self.end_time - self.start_time) * 1000
if self.display_total_time:
print("总的计时时间是:[{}]毫秒".format(self.total_ms))
if __name__ == '__main__':
with MyTimer(display_total_time=True) as my_timer:
print(func(25))
使用上下文管理器, 实现函数的计时, 魔法方法__enter__、__exit__的使用
猜你喜欢
转载自blog.csdn.net/u010684603/article/details/108894658
今日推荐
周排行