码迷,mamicode.com
首页 > 编程语言 > 详细

Python 使用__getitem__ __setitem__ __delitem__ 创建自己的映射类型

时间:2015-05-17 02:17:55      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:python __getitem__ ___setitem__ __delitem__ __len__

可以通过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 类(提前做个知识储备)。

本文出自 “学习笔记” 博客,请务必保留此出处http://unixman.blog.51cto.com/10163040/1651922

Python 使用__getitem__ __setitem__ __delitem__ 创建自己的映射类型

标签:python __getitem__ ___setitem__ __delitem__ __len__

原文地址:http://unixman.blog.51cto.com/10163040/1651922

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!