请用python帮我实现一个自定缓存类,需包含增删改查这些功能,代码需精简且功能强大
时间: 2024-03-01 21:51:12 浏览: 52
好的,我可以帮你实现一个自定义缓存类,代码如下:
```python
class Cache:
def __init__(self, max_size=10):
self.cache = {}
self.max_size = max_size
def get(self, key):
if key in self.cache:
value = self.cache[key]
# 将访问过的key放到字典的最后,保证最近访问的放在最后
del self.cache[key]
self.cache[key] = value
return value
else:
return None
def put(self, key, value):
if key in self.cache:
del self.cache[key]
elif len(self.cache) >= self.max_size:
# 如果缓存已满,删除最早访问的key
self.cache.pop(next(iter(self.cache)))
self.cache[key] = value
def delete(self, key):
if key in self.cache:
del self.cache[key]
def clear(self):
self.cache.clear()
```
这个缓存类包含了增删改查这些功能,并且支持自定义缓存大小。使用方法如下:
```python
cache = Cache(max_size=3)
cache.put("a", 1)
cache.put("b", 2)
cache.put("c", 3)
print(cache.get("a")) # 1
print(cache.get("b")) # 2
print(cache.get("c")) # 3
cache.put("d", 4) # 缓存已满,删除最早访问的key "a"
print(cache.get("a")) # None
print(cache.get("d")) # 4
cache.delete("b")
print(cache.get("b")) # None
cache.clear()
print(cache.get("c")) # None
```
希望这个缓存类能够满足你的需求。
阅读全文