def __setitem__(self, key, value):
OrderedDict.__setitem__(self, key, value)
self._check_size_limit()
python类__setitem__()的实例源码
def __setitem__(self, key, value, *args, **kwargs):
OrderedDict.__setitem__(self, key, value, *args, **kwargs)
self._check_size_limit()
def __getitem__(self, key, *args, **kwargs):
# Get the key and remove it from the cache, or raise KeyError
value = OrderedDict.__getitem__(self, key)
del self[key]
# Insert the (key, value) pair on the front of the cache
OrderedDict.__setitem__(self, key, value)
# Return the value from the cache
return value
def __setitem__(self, key, value, *args, **kwargs):
# Key was inserted before, remove it so we put it at front later
if key in self:
del self[key]
# Too much items on the cache, remove the least recent used
elif len(self) >= self._maxsize:
self.popitem(False)
# Insert the (key, value) pair on the front of the cache
OrderedDict.__setitem__(self, key, value, *args, **kwargs)
def __setitem__(self, key, value, *args, **kwargs):
# Reset the cache if we have too much cached entries and start over
if len(self) >= self._maxsize:
self.clear()
# Insert the (key, value) pair on the front of the cache
dict.__setitem__(self, key, value, *args, **kwargs)
def __setitem__(self, key, value):
"""Store a new views, potentially discarding an old value.
"""
if key not in self:
if len(self) >= self.cache_size:
self.popitem(last=False)
OrderedDict.__setitem__(self, key, value)
def __getitem__(self, key):
"""Get the item, but also makes it most recent.
"""
_super = super(LRUCache, self)
value = _super.__getitem__(key)
_super.__delitem__(key)
_super.__setitem__(key, value)
return value
def __setitem__(self, key, value):
""" Set d[key] to value. """
with self.lock:
if len(self) == self.max_len:
self.popitem(last=False)
OrderedDict.__setitem__(self, key, (value, time.time()))
def __setitem__(self, key, value):
OrderedDict.__setitem__(self,
want_unicode(key),
want_unicode(value))
def __setitem__(self, key, value):
"""Store a new views, potentially discarding an old value."""
if key not in self:
if len(self) >= self.cache_size:
self.popitem(last=False)
OrderedDict.__setitem__(self, key, value)
def __getitem__(self, key):
"""Gets the item, but also makes it most recent."""
_super = super(LRUCache, self)
value = _super.__getitem__(key)
_super.__delitem__(key)
_super.__setitem__(key, value)
return value
def __setitem__(self, key, value):
""" Set d[key] to value. """
with self.lock:
if len(self) == self.max_len:
self.popitem(last=False)
OrderedDict.__setitem__(self, key, value)
self.key_time_map[key] = {}
def __llen__(self, key):
return len(OrderedDict.__setitem__(self, key, value))
def set_ttl(self, key, seconds):
is_have = OrderedDict.__getitem__(self,key)
if is_have:
expire_time = time.time() + seconds
self.key_time_map[key] = {"time": time.time(), "max_age": 0, "expire_time": expire_time}
key_ttl = expire_time - time.time()
#self.__setitem__(key,is_have)
#OrderedDict.__setitem__(self, key,is_have)
if key_ttl > 0:
return key_ttl
return None
def __getitem__(self, key, *args, **kwargs):
# Get the key and remove it from the cache, or raise KeyError
value = OrderedDict.__getitem__(self, key)
del self[key]
# Insert the (key, value) pair on the front of the cache
OrderedDict.__setitem__(self, key, value)
# Return the value from the cache
return value
def __setitem__(self, key, value, *args, **kwargs):
# Key was inserted before, remove it so we put it at front later
if key in self:
del self[key]
# Too much items on the cache, remove the least recent used
elif len(self) >= self._maxsize:
self.popitem(False)
# Insert the (key, value) pair on the front of the cache
OrderedDict.__setitem__(self, key, value, *args, **kwargs)
def __setitem__(self, key, value, *args, **kwargs):
# Reset the cache if we have too much cached entries and start over
if len(self) >= self._maxsize:
self.clear()
# Insert the (key, value) pair on the front of the cache
dict.__setitem__(self, key, value, *args, **kwargs)
def __setitem__(self, key, value):
if self._read_only:
self._read_only_error()
dict.__setitem__(self, key, value)
def __setitem__(self, key, value):
if self._read_only:
self._read_only_error()
OrderedDict.__setitem__(self, key, value)