I have task to use decorators in class methods. Without them it worked but now it require positional argument at object initialization. What's my mistake?
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity: int):
self.cache = OrderedDict()
self.capacity = capacity
@property
def cache(self):
return self.cache
@cache.setter
def cache(self, key_value) -> None:
key, value = key_value
self.__cache[key] = value
self.__cache.move_to_end(key)
if len(self.__cache) > self.capacity:
self.__cache.popitem(last=False)
cache = LRUCache(2)
cache.cache = ("key1", "value1")
cache.cache = ("key2", "value2")
cache.cache = ("key3", "value3")