您的位置:首页 > 编程语言 > Python开发

Python中的__getitem__和__setitem__特殊方法

2014-11-21 11:01 591 查看
在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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: