docs/si/neox/utils/cache.html
අනුමානයඅතරතුර ආදර්ශ ටෝකනය මඟින් ටෝකනය ප්රතිදානය කරයි. යතුරේ සහ වටිනාකමේ අවධානය ස්ථර ගබඩා කිරීම සඳහා අපි මෙම සරල හැඹිලිය භාවිතා කරමු, එවිට පෙර ටෝකන සඳහා ඒවා නැවත ගණනය කිරීමට අපට අවශ්ය නොවේ.
15fromtypingimportAny
මෙයප්රධාන වටිනාකමක් සහිත හැඹිලියක් පවත්වා ගෙන යන අතර පෝලිම් අගයන් තල්ලු කර ඒවා එකම අනුපිළිවෙලකට පොප් කරයි. අපට බහු අවධානය ස්ථර ඇති බැවින් පෝලිම් ප්රයෝජනවත් වේ.
18classCache:
26def\_\_init\_\_(self):27self.\_cache={}
29defclear\_all(self):
33self.\_cache={}
name පෝලිමේ නමvalue තල්ලු කළ යුතු වටිනාකම වේ35defpush(self,name:str,value:Any):
එයනොමැති නම් හිස් පෝලිමක් සාදන්න
44ifnamenotinself.\_cache:45self.\_cache[name]=[]
පෝලිමටතල්ලු කරන්න
48self.\_cache[name].append(value)
name පෝලිමේ නමපෝලිමේ_ප්රතිලාභ_ ප්රමාණය වෙනත් කිසිවක් තිබේ නම් නැත
50defq\_size(self,name):
58ifnamenotinself.\_cache:59returnNone6061iftype(self.\_cache[name])!=list:62returnNone6364returnlen(self.\_cache[name])
name පෝලිමේ නමවටිනාකම_නැවත ලබා දෙයි_
66defpop(self,name:str):
73returnself.\_cache[name].pop(0)
key හැඹිලි කළ යුතු වටිනාකමේ නමයිvalue වටිනාකම වේ75defset(self,key:str,value:Any):
82self.\_cache[key]=value
key හැඹිලි කිරීමේදී භාවිතා කරන නමයිdefault හැඹිලිය හිස් නම් පෙරනිමි අගය වේහැඹිලිඅගය_නැවත ලබා දෙයි_
84defget(self,key:str,default:Any=None):
92returnself.\_cache.get(key,default)
key හැඹිලි කිරීමේදී භාවිතා කරන නමයි94defclear(self,key:str):
100delself.\_cache[key]
හැඹිලිසඳහා සිංගල්ටන්
104\_INSTANCE=None
හැඹිලිඅවස්ථාව_ආපසු ලබා දෙයි_
107defget\_cache()-\>Cache:
113global\_INSTANCE114115if\_INSTANCEisNone:116\_INSTANCE=Cache()117118return\_INSTANCE