跳到主要内容

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的方法实例化。用户不应当显式地初始化该类的实例。

参数

参数类型必选
说明
dataMapping[K, T]BackDict的可变数据存储区。
back_dataMapping[K2, T]BackDict不可变的备用内部存储区。
key_mapper(K) -> K2当关键字未在data中搜索到时,用于将要搜索的关键字从K类型一一映射到K2
key_back_mapper(K2) -> K当需要向用户展示可用的关键字时,用来将备用域中K2类型的关键字一一映射到K

运算符

__len__

vlen: int = len(bdict_view)

获取字典的长度。该长度同时也是该视图中键值对的数目。

输出

参数类型
说明
vlenint字典两级存储关键字的并集之中、关键字数目。

__contains__

flag: bool = key in bdict_view

检查key是否存在于该字典视图中。

输入

参数类型必选
说明
keyK要检查的关键字。

输出

参数类型
说明
flagbool若为True,则表面给定的key存在于字典视图中。若key不存在第一级域中、但能在第二级域检索到,该值还是为True

__iter__

keys: Iterator[K] = iter(bdict_view)

遍历字典视图中的每个关键字。

输出

参数类型
说明
keysIterator[K]迭代器。每次迭代返回字典视图中的一个关键字。若所返回的关键字来自备用域,迭代器所返回的关键字会经过key_back_mapper的后处理。

__getitem__

val: V = bdict_view[key]

定位字典视图中的一个值。若关键字未找到,抛出KeyError

输入

参数类型必选
说明
keyK用来定位值的关键字。若值来自备用域,则会使用key_mapper(key)来定位值。

输出

参数类型
说明
valVkey定位到的值。