浅谈Python类的__getitem__和__setitem__特殊方法
更新时间:2016年12月25日 11:36:51 投稿:jingxian
下面小编就为大家带来一篇浅谈Python类的__getitem__和__setitem__特殊方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一个有点绕的例子,用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 操作 PostgreSQL 数据库示例【连接、增删改查等】
这篇文章主要介绍了Python 操作 PostgreSQL 数据库的方法,结合实例形式分析了Python 连接PostgreSQL及增删改查等相关操作技巧,需要的朋友可以参考下2020-04-04Python实现爆破ZIP文件(支持纯数字,数字+字母,密码本)
这篇文章主要为大家分享了如何利用Python实现破解zip文件的密码,能实现破解纯数字、数字+字母、密码本等种类的密码,需要的可以参考一下2022-03-03python Jieba分词处理详解【模式,词库的添加、删除,自定义词库,失败处理等】
这篇文章主要介绍了python Jieba分词处理,结合实例形式详细分析了python 使用jieba分词的模式,词库的添加、删除,自定义词库,失败处理等相关操作技巧,需要的朋友可以参考下2023-07-07
最新评论