可以通过Python 的 特殊函数 __getitem__ 、__setitem__ 、__delitem__ 去创建自己的字典这样的映射类型。
Example:
#! /usr/bin/env python class MyDict(object): def __init__(self): self.item = {} def __getitem__(self,key): return self.item.get(key) def __setitem__(self,key,value): self.item[key] = value def __delitem__(self,key): del self.item[key] def __len__(self): return len(self.item) if __name__ == "__main__": myDict = MyDict() myDict.__setitem__(‘lang‘,‘python‘) print myDict.__getitem__(‘lang‘) print "length is", len(myDict) myDict.__delitem__(‘lang‘) print myDict.__getitem__(‘lang‘) print ‘*‘ * 20 myDict[‘lang‘] = "python" print myDict[‘lang‘] print "length is", len(myDict) del myDict[‘lang‘] print myDict[‘lang‘]
执行结果如下:
python length is 1 None ******************** python length is 1 None
例子中引入了 __len__ 特殊函数。这样我们就可以计算自己定义的字典的长度了。学习这一块的知识点,主要是想学习python 的 collections 包中的 MutableMapping 类(提前做个知识储备)。
时间: 2024-10-09 07:03:24