Python中的__getitem__和__setitem__特殊方法

来源:互联网 发布:方坦纳欧洲经济史知乎 编辑:程序博客网 时间:2024/06/06 02:38

在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)


0 0
原创粉丝点击