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)
下面是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__特殊方法
- Python类的__getitem__和__setitem__特殊方法
- Python类的__getitem__和__setitem__特殊方法
- 浅谈Python类的__getitem__和__setitem__特殊方法
- Python类的__getitem__和__setitem__特殊方法
- Python类,特殊方法, __getitem__,__len__, __delitem__
- python 魔法方法之:__getitem__ __setitem__ __delitem__
- python 魔术方法:__getitem__、__setitem__、__delitem__、__len__
- python 魔法方法之:__getitem__ __setitem__ __delitem__ __len__
- python四个魔法方法__len__,__getitem__,__setitem__,__delitem__
- Python类,特殊方法, __getitem__,__len__, __delitem__
- 详解Python魔术方法__getitem__、__setitem__、__delitem__、__len__
- 详解Python中的__getitem__方法与slice对象的切片操作
- 廖雪峰Python教程1轮还没学明白的(2) -- 面向对象高级编程 -- 定制类 -- 实现Fib数列的__getitem__()/切片方法
- Python3基础 描述符类与自制property方法 __get__,__set__,__delete__方法 讲一个特殊的类的实例指派给另一个类的属性
- Python中__init__(),__getitem__()和__setitem__()的使用实例
- python中__getitem__, __setitem__, __delitem__的使用
- python __setitem__(self)和__getitem__(self)
- 解析Python中的__getitem__专有方法
- Python中__getitem__()和__setitem__()的使用实例