• python 魔法方法之:__getitem__ __setitem__ __delitem__


    python的魔法方法:

    在Python中,如果我们想实现创建类似于序列和映射的类,可以通过重写魔法方法__getitem__、__setitem__、__delitem__、__len__方法去模拟。

    __getitem__(self,key):返回键对应的值。

    __setitem__(self,key,value):设置给定键的值

    __delitem__(self,key):删除给定键对应的元素。

    __len__():返回元素的数量

    下面我们模仿dict创建自己的类:

    class MyDict(object):
    
        def __init__(self):
    
            print'call fun __init__'
    
            self.item = {}
    
        def __getitem__(self,key):
    
            print'call fun __getItem__'
    
            return self.item.get(key)
    
        def __setitem__(self,key,value):
    
            print'call fun __setItem__'
    
            self.item[key] =value
    
        def __delitem__(self,key):
    
            print'cal fun __delitem__'
    
            del self.item[key]
    
        def __len__(self):
    
            returnlen(self.item)
    
            myDict = MyDict()
    
            print myDict.item
    
    #执行结果
    myDict[2] = 'ch'
    
    myDict['hobb'] = 'sing'
    
    print myDict[2]
    
    print myDict.item
    
    del myDict[2]
    
    print myDict.item
    
    print len(myDict)

    我们创建了一个行为类似映射的类,并生成了类的实例,这样当我们对类的属性item进行下标的操作时,会被__getitem__()/__setitem__()

    /__delitem__()拦截,从而进行相应的操作,如赋值,修改内容,删除内容等等。

  • 相关阅读:
    第三次作业
    第三次作业
    第二次作业
    作业
    日本人の名前の読み方
    免费学习网站小记
    The MySQL server is running with the --secure-file-priv option so it cannot execute
    转载:mysql 通过命令行方式导出查询结果时,如何带列名?
    转载-------------------HTML常用的特殊符号总结
    img 标签内如何在src中引用变量
  • 原文地址:https://www.cnblogs.com/chushiyaoyue/p/5977434.html
Copyright © 2020-2023  润新知