减小计算开销将数据保存在类的属性中的思想
from collections import defaultdict class Test(object): def __init__(self): # 保存数据的类的属性 self.dic = defaultdict(int) def init_data(self): self.dic[2] = 666 self.dic[4] = 666 def get_data(self): # 获取数据的逻辑略 return 123 def handle_method(self): # 如果数据在self.dic中就从self.dic中获取否则计算得到 for i in range(5): if i in self.dic: print("从self.dic中获取到的值,不用计算:",self.dic[i]) else: data = self.get_data() # 将值存在self.dic中,以便下次使用 self.dic[i] = data print("没有从self.dic中获取值,需要计算:",data) if __name__ == '__main__': t = Test() t.init_data() t.handle_method() """ 没有从self.dic中获取值,需要计算: 123 没有从self.dic中获取值,需要计算: 123 从self.dic中获取到的值,不用计算: 666 没有从self.dic中获取值,需要计算: 123 从self.dic中获取到的值,不用计算: 666 """
~~