如何在python 2.7中创建类似dict?

时间:2014-08-29 15:01:51

标签: python python-2.7

看起来有多种方法可以做到,但无法找到最新的最佳方法。

  1. Subclass UserDict
  2. Subclass DictMixin
  3. 子类字典
  4. Subclass MutableMapping
  5. 正确的做法是什么?我想抽象数据库中的实际数据。

2 个答案:

答案 0 :(得分:0)

由于你的dict-like类实际上不是字典,我会选择MutableMapping。子类化dict意味着类似于dict的特性,包括性能特征,如果你实际上正在访问数据库,那么这些特性将不会成立。

答案 1 :(得分:0)

如果您正在做自己的事情(例如发明自己的轮子),您也可以从头开始编写类(即object的子类),只提供正确的特殊成员(例如__getitem__ )以及对象data model中描述的其他此类函数,以便它像dict一样嘎嘎作响。在内部,您甚至可能拥有许多dicts(has-a)来帮助您实施。

通过这种方式,你不必为了“适应”某些现有的实现而设计你的设计,并且你不需要支付一些你不一定使用的东西。这个建议部分是因为你的数据库支持的类如果你考虑性能/缓存/一致性/最佳查询等,它将比标准字典复杂得多。