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定位到的值。 |