How to subclass an OrderedDict?

蹲街弑〆低调 提交于 2019-12-03 04:23:07

You need to invoke OrderedDict.__init__ from your __init__:

class OrdDictSub(collections.OrderedDict):
    def __init__(self):
        super(OrdDictSub, self).__init__()

You haven't given OrderedDict a chance to initialize itself. Technically, you want to do this for your dict subclass as well, since you want a fully initialized dict. The fact that dict works without it is just luck.

Try initializing the superclass in the __init__ method:

def __init__(self):
    collections.OrderedDict.__init__(self)
    self[1] = 10

This is the normal way to initialize a subclass. You don't have to call the superclass's __init__ method in general, but if you have no knowledge of the superclass's implementation you really should call __init__.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!