浅谈Python类的__getitem__和__setitem__特殊方法
2016-12-25 11:36
976 查看
一个有点绕的例子,用PyScripter调试器步进跟踪可以看清楚对 象结构的具体细节。
对原作改变了一下,在未定义子对象属性时__getitem__中使用现成的__setitem__来定义。
## encoding:utf-8 """ 这个类继承了object, object是Python的最小单元,可以在Python的">>>"控制台用dir(objct)或者dir (__builtins__.object)命令查看它的属性,可以看到__setattr__, __new__...他们是python中任何对象都会具有的属性,你也可以dir(1)和dir(int)看看,可看到更多内容,在这里,1作为一个实例化的int对象出现。而这些__xxx__属性有什么用呢?在接下来的代码中,我们可以了解__getitem__和__setitem__有什么用 (这两个属性在dict对象中非常重要) """ class WPUnit(object): def __init__(self): self._res={} def __setitem__(self,key,val): self._res[key]=val def __getitem__(self,key): if self._res.has_key(key): return self._res[key] else: r=WPUnit() self.__setitem__(key,r) return r a=WPUnit() a['a']['b']['c']['d']['e']['f']['g']=5 print a['a']['b']['c']['d']['e']['f']['g']
>>> class testsetandget: kk = {}; def __getitem__(self, key): return self.kk[key]; def __setitem__(self, key, value): self.kk[key] = value; >>> a = testsetandget() >>> a['first'] = 1 >>> a['first'] 1 >>> a.__setitem__('second', 2) >>> a.__getitem__('second') 2 >>> a['second'] 2 >>>
以上就是小编为大家带来的浅谈Python类的__getitem__和__setitem__特殊方法全部内容了,希望大家多多支持脚本之家~
您可能感兴趣的文章:
相关文章推荐
- Python类的__getitem__和__setitem__特殊方法
- Python类的__getitem__和__setitem__特殊方法
- Python中的__getitem__和__setitem__特殊方法
- Python类的__getitem__和__setitem__特殊方法
- Python类的__getitem__和__setitem__特殊方法
- python四个魔法方法__len__,__getitem__,__setitem__,__delitem__
- Python类,特殊方法, __getitem__,__len__, __delitem__
- python 魔术方法:__getitem__、__setitem__、__delitem__、__len__
- python 魔法方法之:__getitem__ __setitem__ __delitem__ __len__
- python 魔法方法之:__getitem__ __setitem__ __delitem__
- Python类,特殊方法, __getitem__,__len__, __delitem__
- 详解Python魔术方法__getitem__、__setitem__、__delitem__、__len__
- python __getitem__, __setitem__ 实现属性的索引式存取
- 廖雪峰Python教程1轮还没学明白的(2) -- 面向对象高级编程 -- 定制类 -- 实现Fib数列的__getitem__()/切片方法
- 解析Python中的__getitem__专有方法
- Python中__init__(),__getitem__()和__setitem__()的使用实例
- 详解Python中的__getitem__方法与slice对象的切片操作
- python中__getitem__, __setitem__, __delitem__的使用
- python __setitem__(self)和__getitem__(self)
- Python的魔法函数之 - __len__,__getitem__,__setitem__,__delitem__