Python中的__getitem__和__setitem__特殊方法

原创 2014年11月21日 11:01:50

在Nova的源码中,基本上所有的类都继承NovaObject,这些类可以直接以a[key]=value的方式给对象增加新的属性并且通过a[key]的方式获取对象属性,这是因为在NovaObject中实现了两个方法__getitem__和__setitem__。

下面是NovaObject的部分源码:

class NovaObject(object):
    ...
    def __getitem__(self, name):
        """For backwards-compatibility with dict-based objects.

        NOTE(danms): May be removed in the future.
        """
        return getattr(self, name)

    def __setitem__(self, name, value):
        """For backwards-compatibility with dict-based objects.

        NOTE(danms): May be removed in the future.
        """
        setattr(self, name, value)


相关文章推荐

python中__getitem__, __setitem__, __delitem__的使用

参考: 伯乐地址用于索引操作,如字典。以上分别表示获取、设置、删除数据#Python __doc__ class C(object): """ Holy Shit What The Fuck ...

Python类的__getitem__和__setitem__特殊方法

一个有点绕的例子,用PyScripter调试器步进跟踪可以看清楚对 象结构的具体细节。 对原作改变了一下,在未定义子对象属性时__getitem__中使用现成的__setitem__来定义。 ...

Python类的__getitem__和__setitem__特殊方法

>>> class testsetandget: kk = {}; def __getitem__(self, key): return self.kk[key]; def __setitem__(...
  • xxkkff
  • xxkkff
  • 2009年07月30日 21:13
  • 16473

python四个魔法方法__len__,__getitem__,__setitem__,__delitem__

python中除了可以使用内建的类型,如list,tuple,dict,还可以创建自己的对象来实现像这些内建类型的访问,不过需要在定义类的时候对一些魔法方法逐一实现。 如下: class DictDe...
  • yuan_j_y
  • yuan_j_y
  • 2013年07月13日 21:32
  • 14687

关于localStorage的一些操作如getItem,setItem等

借用网上的一张图来看下目前主流的本地存储方案: Cookie: 在web中得到广泛应用,但局限性非常明显,容量太小,有些站点会因为出于安全的考虑而禁用cookie,cookie没有想...

android FragmentPagerAdapter getItem方法没有执行

在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,...

关于ViewPager与Fragment配合使用时,FragmentPagerAdapter中getItem方法第二次不执行问题

ViewPager与Fragment配合使用可以实现滑屏的效果,如下图所示 :                                     图一                   ...

python特殊属性和方法的运用

用__dict__把dict转换为对象的属性 1 class Messenger: 2 def __init__(self, **kwargs): 3 self....

学习python的第三十六天-OS模块,特殊的方法

这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。一个例...
  • A_lPha
  • A_lPha
  • 2016年12月12日 13:41
  • 435

Python 中特殊变量/方法命名规则说明(特别是私有变量)及使用实例

以下内容使用Markdown编写. 问题引入 命名规范常规变量命名 特殊变量命名 实例演示 私有变量方法的用途 知识点延伸 总结 参考资料 问题引入 在编写orm时候,看到一些参考资料上对变量...
  • cdd801
  • cdd801
  • 2015年03月23日 19:54
  • 367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python中的__getitem__和__setitem__特殊方法
举报原因:
原因补充:

(最多只允许输入30个字)