Python __getattr__与__setattr__使用方法
来源:互联网 发布:js a disabled属性 编辑:程序博客网 时间:2024/05/21 19:46
#比较好的例子
class JsonDict(dict): def __getattr__(self,attr): try: return self[attr] except KeyError: raise AttributeError(r"'JsonDict' object has no attribute '%s'" % attr) #可以重写dict,使之通过“.”调用 def __setattr__(self,attr,value): self[attr] = valuej=JsonDict(name='python',age='28')print j.nameprint j.age
class Book(object): def __setattr__(self, name, value): if name == 'value': object.__setattr__(self, name, value - 100) else: object.__setattr__(self, name, value) def __getattr__(self, name): try: return object.__getattribute__(name) except: return name + ' is not found!' def __str__(self): return self.name + ' cost : ' + str(self.value)c = Book()c.name = 'Python'c.value = 100print c.nameprint c.valueprint cprint c.Type
上面的例子中,在赋值书的value属性时,偷偷的将value减去了100,呵。输出结果:
Python0
Python cost : 0
Type is not found!
参考:http://www.cnblogs.com/coderzh/archive/2008/05/25/1206931.html
0 0
- Python __getattr__与__setattr__使用方法
- Python __getattr__与__setattr__使用方法
- Python中 __getattr__ __setattr__
- Python __getattr__ __getattribute__ __setattr__
- python __setattr__, __getattr__, __delattr__,__getattribute__
- python中的__dict__,__getattr__,__setattr__
- python中的__dict__,__getattr__,__setattr__
- python中的__dict__,__getattr__,__setattr__
- __getattr__,__setattr__,__delattr__与__getattribute__
- python类中的__call__、__init__、__getattr__、__setattr__、__setattr__详解
- python __setattr__ , __getattr__ , __setattribute__ 防止死循环
- python魔法方法:__getattr__,__setattr__,__getattribute__
- python魔法方法:__getattr__,__setattr__,__getattribute__
- Python __setattr__()、__getattr__()、__delattr__() (十)
- python __getattr__ 和 __setattr__方法、属性私有化
- python中__getattr__,__setattr__,__getattribute__的区别
- python __getattr__,__setattr__方法的理解
- python中__getattr__ __setattr__和它的朋友们
- MATLAB与数据库Mysql的链接
- 【数据结构与算法分析】2.4 求最大子序列和
- ofbiz框架以及核心原理介绍
- 小马哥------高仿htc m8 TB03型号刷机拆机主板图与开机识别图 精仿系列机型 分移动版与联通版
- gradle eclipse下构建ssh2项目
- Python __getattr__与__setattr__使用方法
- Group Anagrams
- 第一个Web前端
- POJ 1613/ZOJ 1791 Cave Raider(bellman-ford)
- 3d打印舵机零件
- bootchartd简介
- win7的系统怎么把屏幕颜色设置成保护眼睛的绿色???
- 负边距在布局中的使用
- 从头认识java-9.11 Queue