可以通过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 类(提前做个知识储备)。
转载于:https://blog.51cto.com/unixman/1651922