def __setitem__(self, key, value, **kwargs): if key in self: del self[key] OrderedDict.__setitem__(self, key, value, **kwargs) if self._max_size and len(self) > self._max_size: self.popitem(last=False)