from abc import ABC
from typing import Any, Dict
[文档]
class Repository(Dict[str, Any], ABC):
"""提供键值存储功能的抽象基类。
继承自 ``Dict`` 实现字典的全部功能,同时作为抽象基类(ABC)提供接口规范。
重写 ``__getitem__`` 方法使其在访问不存在的键时返回None而不是抛出KeyError。
该类可作为配置文件、设置存储等键值对存储机制的基类。
"""
[文档]
def __init__(self) -> None:
"""初始化Repository实例。"""
super().__init__()
[文档]
def get(self, key: str, default: Any = None) -> Any:
"""获取指定键的值,如果键不存在则返回默认值。
Args:
key (str): 要获取值的键
default (Any, optional): 键不存在时返回的默认值。默认为None
Returns:
Any: 键对应的值或默认值
"""
return super().get(key, default)
[文档]
def set(self, key: str, value: Any) -> None:
"""设置指定键的值。
Args:
key (str): 要设置的键
value (Any): 要设置的值
"""
self[key] = value
[文档]
def __getitem__(self, key: str) -> Any:
"""重写字典的键访问方法,当键不存在时返回None而不是抛出KeyError。
此方法通过调用 ``get`` 方法实现安全访问。
Args:
key (str): 要访问的键
Returns:
Any: 键对应的值,如果键不存在则返回None
"""
return self.get(key)