【发布时间】:2018-06-16 14:08:55
【问题描述】:
我想从两个类中创建一个类:collections.OrderedDict 和 collections.DefaultDict。这样我就可以获得一个有序的字典,并为正在访问的不存在的键设置一个默认值。有什么方法可以做到这一点?
我的解决方案是围绕我上面提到的 2 个类创建另一个类。由于我认为每个类中的方法具有相同的名称,这会导致错误?
from collections import defaultdict, OrderedDict
class owndic(OrderedDict, defaultdict):
pass
生产
TypeError: multiple bases have instance lay-out conflict
干杯!
【问题讨论】:
-
您使用的是什么版本的 Python?我无法在 Python 3.4.2 上重现错误
-
不管你的
TypeError是什么原因,如果你想同时使用这两种功能,你最好使用OrderedDict,它的setdefault()属性与defaultdict具有相同的功能。 -
这个错误似乎是因为
defaultdict和OrderedDict都继承自内置的dict类型(它们唯一的基本类型),这在python 中是不允许的。 -
它在hackerrank中的python 3 - 没有说确切的版本。可爱,我会尝试
setdefault谢谢!
标签: python python-3.x class defaultdict