අනුමානයඅතරතුර ආදර්ශ ටෝකනය මඟින් ටෝකනය ප්රතිදානය කරයි. යතුරේ සහ වටිනාකමේ අවධානය ස්ථර ගබඩා කිරීම සඳහා අපි මෙම සරල හැඹිලිය භාවිතා කරමු, එවිට පෙර ටෝකන සඳහා ඒවා නැවත ගණනය කිරීමට අපට අවශ්ය නොවේ.
15from typing import Any
මෙයප්රධාන වටිනාකමක් සහිත හැඹිලියක් පවත්වා ගෙන යන අතර පෝලිම් අගයන් තල්ලු කර ඒවා එකම අනුපිළිවෙලකට පොප් කරයි. අපට බහු අවධානය ස්ථර ඇති බැවින් පෝලිම් ප්රයෝජනවත් වේ.
18class Cache:
26 def __init__(self):
27 self._cache = {}
29 def clear_all(self):
33 self._cache = {}
35 def push(self, name: str, value: Any):
එයනොමැති නම් හිස් පෝලිමක් සාදන්න
44 if name not in self._cache:
45 self._cache[name] = []
පෝලිමටතල්ලු කරන්න
48 self._cache[name].append(value)
50 def q_size(self, name):
58 if name not in self._cache:
59 return None
60
61 if type(self._cache[name]) != list:
62 return None
63
64 return len(self._cache[name])
66 def pop(self, name: str):
73 return self._cache[name].pop(0)
75 def set(self, key: str, value: Any):
82 self._cache[key] = value
key
හැඹිලි කිරීමේදී භාවිතා කරන නමයි default
හැඹිලිය හිස් නම් පෙරනිමි අගය වේ හැඹිලිඅගයනැවත ලබා දෙයි
84 def get(self, key: str, default: Any = None):
92 return self._cache.get(key, default)
94 def clear(self, key: str):
100 del self._cache[key]
හැඹිලිසඳහා සිංගල්ටන්
104_INSTANCE = None
107def get_cache() -> Cache:
113 global _INSTANCE
114
115 if _INSTANCE is None:
116 _INSTANCE = Cache()
117
118 return _INSTANCE