python attr相关
2015-08-27 23:01
651 查看
# coding=utf-8_ _author__ = "leaves" # item相关的函数与[]调用相关 attr相关的函数与.调用相关 class myAttr(): name = {}; def __call__(self, key): # 用于实例自身的调用,()调用的效果 try: print('My Attr is %s.' % self[key]) return self[key] except KeyError: return None def __getitem__(self, key): print '__getitem__' return self.name[key] def __setitem__(self, key, value): print '__setitem__' self.name[key] = value def __delitem__(self, key): print '__delitem__' del self.name[key] def __getattr__(self, key): print '__getattr__' return self.name[key] def __setattr__(self, key, value): print '__setattr__' self.name[key] = value def __delattr__(self, key): print '__delattr__' del self.name[key] def __str__(self): return 'My attr is %s' % self.name __repr__ = __str__ print'---------------1--------------' s = myAttr() print'---------------2--------------' s['key'] = 'value' print'---------------3--------------' print s['key'] # 调用__call__ print'---------------4--------------' del s['key'] print'---------------5--------------' s('key') print'---------------6--------------' s.key = 'value2' print'---------------7--------------' print s.key print'---------------8--------------' print hasattr(s, 'key') print'---------------9--------------' del s.key print'---------------10--------------' # print s.key 调用__getattr__报错 print hasattr(myAttr, 'key') print'---------------11--------------' print s
输出:
---------------1--------------
---------------2--------------
__setitem__
---------------3--------------
__getitem__
value
---------------4--------------
__delitem__
---------------5--------------
__getitem__
---------------6--------------
__setattr__
---------------7--------------
__getattr__
value2
---------------8--------------
__getattr__
True
---------------9--------------
__delattr__
---------------10--------------
False
---------------11--------------
My attr is {}
相关文章推荐
- python在大量地图poi数据中进行位置查找:来源于Rtree的思想
- 零基础学python-8.3 列表的索引、分片和矩阵
- 零基础学python-8.3 列表的索引、分片和矩阵
- Pandas数据探索与实践
- python中str(字符串)、list(列表)、tuple(元组)、dict(字典)相互转化关系及字典键-值遍历
- 零基础学python-8.2 列表的基本操作、迭代和解析
- 零基础学python-8.2 列表的基本操作、迭代和解析
- 学习日志---pyhon入门必备
- 零基础学python-8.1 列表
- 零基础学python-8.1 列表
- 第0011道练习题_Python下载<杉本有美>图片
- python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法
- python 学习笔记
- Python元类实践--自己定义一个和collections中一样的namedtuple
- 轻松python文本专题-字符串开头或者结尾匹配
- 轻松python文本专题-字符串开头或者结尾匹配
- Python中的sys.argv
- python itertools模块
- 拉格朗日插值python实现
- python学习笔记