为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何实现有序的、默认的DECT?

请问如何实现有序的、默认的DECT?

拉莫斯之舞 2019-08-02 14:02:57
如何实现有序的、默认的DECT?我想把OrderedDict()和defaultdict()从…collections在一个对象中,这将是一个有序的、默认的dict.这个是可能的吗?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞



这是另一种可能性,灵感来源于雷蒙德·赫廷格的超级(被认为是超级),在Python2.7.X和3.4.X上进行了测试:

from collections import OrderedDict, defaultdictclass OrderedDefaultDict(OrderedDict, defaultdict):
    def __init__(self, default_factory=None, *args, **kwargs):
        #in python3 you can omit the args to super
        super(OrderedDefaultDict, self).__init__(*args, **kwargs)
        self.default_factory = default_factory

如果你检查了全班的MRO(又名,help(OrderedDefaultDict)),你会看到这个:

class OrderedDefaultDict(collections.OrderedDict, collections.defaultdict)
 |  Method resolution order:
 |      OrderedDefaultDict
 |      collections.OrderedDict
 |      collections.defaultdict |      __builtin__.dict |      __builtin__.object

意味着当OrderedDefaultDict初始化后,它将服从OrderedDict但是这个人反过来会调用defaultdict调用前的方法__builtin__.dict这正是我们想要的。



查看完整回答
反对 回复 2019-08-03
  • 3 回答
  • 0 关注
  • 417 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信