අතරමැදිසක්රීය කිරීම් සඳහා හැඹිලිය

අනුමානයඅතරතුර ආදර්ශ ටෝකනය මඟින් ටෝකනය ප්රතිදානය කරයි. යතුරේ සහ වටිනාකමේ අවධානය ස්ථර ගබඩා කිරීම සඳහා අපි මෙම සරල හැඹිලිය භාවිතා කරමු, එවිට පෙර ටෝකන සඳහා ඒවා නැවත ගණනය කිරීමට අපට අවශ්ය නොවේ.

15from typing import Any

හැඹිලිය

මෙයප්රධාන වටිනාකමක් සහිත හැඹිලියක් පවත්වා ගෙන යන අතර පෝලිම් අගයන් තල්ලු කර ඒවා එකම අනුපිළිවෙලකට පොප් කරයි. අපට බහු අවධානය ස්ථර ඇති බැවින් පෝලිම් ප්රයෝජනවත් වේ.

18class Cache:
26    def __init__(self):
27        self._cache = {}

හැඹිලියඉවත් කරන්න

29    def clear_all(self):
33        self._cache = {}

පෝලිමකටවටිනාකමක් තල්ලු කරන්න

  • name පෝලිමේ නම
  • value තල්ලු කළ යුතු වටිනාකම වේ
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)

පෝලිමේප්රමාණය ආපසු දෙන්න

  • name පෝලිමේ නම

පෝලිමේප්රතිලාභ ප්රමාණය වෙනත් කිසිවක් තිබේ නම් නැත

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])

පෝලිමේසිට පොප්

  • name පෝලිමේ නම
  • වටිනාකමනැවත ලබා දෙයි

66    def pop(self, name: str):
73        return self._cache[name].pop(0)

වටිනාකමක්හැඹිලිය

  • key හැඹිලි කළ යුතු වටිනාකමේ නමයි
  • value වටිනාකම වේ
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)

හැඹිලිඅගය ඉවත් කරන්න

  • key හැඹිලි කිරීමේදී භාවිතා කරන නමයි
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