mydict.py代码如下:

 class Dict(dict):

     def __init__(self, **kw):
super().__init__(**kw) def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(
r"'Dict' object has no attribute '%s'" % key) def __setattr__(self, key, value):
self[key] = value

编写mydict_test.py如下:

 import unittest

 from Dict import Dict

 class TestDict(unittest.TestCase):

     def setUp(self):
print('setUp...') def tearDown(self):
print('tearDown...') def test_init(self):
d = Dict(a=1, b='test')
self.assertEqual(d.a, 1)
self.assertEqual(d.b, 'test')
self.assertTrue(isinstance(d, dict)) def test_key(self):
d = Dict()
d['key'] = 'value'
self.assertEqual(d.key, 'value') def test_attr(self):
d = Dict()
d.key = 'value'
self.assertTrue('key' in d)
self.assertEqual(d['key'], 'value') def test_keyerror(self):
d = Dict()
with self.assertRaises(KeyError):
value = d['empty']
print(value) def test_attrerror(self):
d = Dict()
with self.assertRaises(AttributeError):
value = d.empty
print(value) if __name__ == '__main__':
unittest.main()

最新文章

  1. sh
  2. ruby on rails 实战(二)
  3. C语言中结构体 自引用 和 相互引用
  4. HoloGraphLibrary
  5. 在CentOS6.4中安装配置LAMP环境的详细步骤
  6. Hive[5] HiveQL 数据操作
  7. 【Stage3D学习笔记续】山寨Starling(十二):总结和一些没提到的东西
  8. Mysql 源码编译教程贴
  9. Jackson将json字符串转换成List<JavaBean>
  10. php 之 类,对象
  11. 快速构建Windows 8风格应用28-临时应用数据
  12. 注册WinEdt 7
  13. 在Editplus中配置java的(带包)编译(javac)和运行(java)的方法
  14. shell 简单脚本编程
  15. 推荐安全且匿名的邮箱 ProtonMail -- PGP算法
  16. Java之for循环嵌套练习
  17. PostgreSQL函数(存储过程)----笔记
  18. Java programming problems
  19. selenium元素定位(Java)
  20. JAVA(四)类集/枚举

热门文章

  1. Erlang进程堆垃圾回收机制
  2. js前端3des加密 后台java解密
  3. Xamarin.Android 实现虾米音乐搜索下载
  4. Service-level agreement
  5. dataTables-details 1.9
  6. Deep Learning 33:读论文“Densely Connected Convolutional Networks”-------DenseNet 简单理解
  7. (linux)container_of()宏
  8. react native 之页面布局
  9. 解决virtualbox安装增强工具失败的问题
  10. Why is an 'Any CPU' application running as x86 on a x64 machine?