BackDictView
类私有源码
bdict_view = BackDictView[K, V](
data: Mapping[K, V],
back_data: Mapping[K2, V],
key_mapper: Callable[[K], K2],
key_back_mapper: Callable[[K2], K],
)
内部类。用于在BackDict
中提供MappingView
的只读代理。
危险
该类需要由BackDict
的方法实例化。用户不应当显式地初始化该类的实例。
参数
参数 | 类型 | 必选 | |
---|---|---|---|
data | Mapping[K, T] | BackDict 的可变数据存储区。 | |
back_data | Mapping[K2, T] | BackDict 不可变的备用内部存储区。 | |
key_mapper | (K) -> K2 | 当关键字未在data 中搜索到时,用于将要搜索的关键字从K 类型一一映射到K2 。 | |
key_back_mapper | (K2) -> K | 当需要向用户展示可用的关键字时,用来将备用域中K2 类型的关键字一一映射到K 。 |
运算符
__len__
vlen: int = len(bdict_view)
获取字典的长度。该长度同时也是该视图中键值对的数目。
输出
参数 | 类型 | |
---|---|---|
vlen | int | 字典两级存储关键字的并集之中、关键字数目。 |
__contains__
flag: bool = key in bdict_view
检查key
是否存在于该字典视图中。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
key | K | 要检查的关键字。 |
输出
参数 | 类型 | |
---|---|---|
flag | bool | 若为True ,则表面给定的key 存在于字典视图中。若key 不存在第一级域中、但能在第二级域检索到,该值还是为True 。 |
__iter__
keys: Iterator[K] = iter(bdict_view)
遍历字典视图中的每个关键字。
输出
参数 | 类型 | |
---|---|---|
keys | Iterator[K] | 迭代器。每次迭代返回字典视图中的一个关键字。若所返回的关键字来自备用域,迭代器所返回的关键字会经过key_back_mapper 的后处理。 |
__getitem__
val: V = bdict_view[key]
定位字典视图中的一个值。若关键字未找到,抛出KeyError
。
输入
参数 | 类型 | 必选 | |
---|---|---|---|
key | K | 用来定位值的关键字。若值来自备用域,则会使用key_mapper(key) 来定位值。 |
输出
参数 | 类型 | |
---|---|---|
val | V | 由key 定位到的值。 |