Python学习:继承一个内置类并用单元测试测试
来源:互联网 发布:淘宝产品摄影技巧大全 编辑:程序博客网 时间:2024/05/29 13:41
从dict继承一个类型并且让我们可以用属性去访问并修改.注意,为了能够实现所有的dict功能,初始化参数一定要用*args,**kw。
注意:下面的代码由问题!
class MyDict(dict): def __init__(self,*args,**kw): super().__init__(*args,**kw) def __getattr__(self,key): try: return self[key] except KeyError: raise KeyError(r'''Dict' object has no object %s'''%key) def __setattr__(self,key,value): self[key] = valueD = MyDict(a = 1,b = 2)print(D)print(D.a)D = MyDict({'1':1,1:'1'})print(D)
单元测试:
import syssys.path.append('E:\code')import unittestfrom MyDictionary import MyDictclass TestDict(unittest.TestCase): def test_init(self): print('test_init') d = MyDict(a=1, b='test') self.assertEqual(d.a, 1) self.assertEqual(d.b, 'test') self.assertTrue(isinstance(d, dict)) def test_key(self): print('test_key') d = MyDict() d['key'] = 'value' self.assertEqual(d.key, 'value') def test_attr(self): d = MyDict() d.key = 'value' self.assertTrue('key' in d) self.assertEqual(d['key'], 'value') def test_keyerror(self): d = MyDict() with self.assertRaises(KeyError): value = d['empty'] def test_attrerror(self): d = MyDict() with self.assertRaises(AttributeError): value = d.emptyif __name__ == '__main__': unittest.main()
[0]:发现了一个问题,错误类型的测试不对!!!正确的代码是这样:
class MyDict(dict): def __init__(self,*args,**kw): super().__init__(*args,**kw) def __getattr__(self,key): try: return self[key] except KeyError: raise AttributeError(r'''Dict' object has no object %s'''%key) def __setattr__(self,key,value): self[key] = value
0 0
- Python学习:继承一个内置类并用单元测试测试
- python 类的继承,内置函数(1)
- 单元测试--测试继承的方法
- python单元测试(自动化测试)
- python 单元测试、文档测试
- Python单元测试+文档测试
- python中继承一个类
- 【Python学习笔记】单元测试
- python学习笔记 单元测试
- python学习之单元测试
- 单元测试..内置
- Python学习:内置函数
- python内置函数学习
- Python内置函数学习
- Python学习-内置函数
- Python学习-类和继承
- 一个Python单元测试的例子
- 【Python】Python学习笔记(类的继承)
- Adapter模式实战-重构鸿洋的Android建行圆形菜单
- 文章标题
- Ubuntu 14.4 server 版 安装gitlab记录
- 正则表达式
- 第十六课 数组的引入 【项目1-5】
- Python学习:继承一个内置类并用单元测试测试
- Ajax基本使用
- 2016:如何选择 Linux 桌面环境
- 【数据结构与算法】(一) c 语言实现数组的简单操作
- 集群环境下使用Shiro的技术方案(With Redis)
- 安卓热更新
- 《C++ Primer Plus》——编程练习答案(3)
- 树莓派:2. 树莓派搭建嵌入式web 服务器-BOA
- 分类问题之朴素贝叶斯模型