代码之家  ›  专栏  ›  技术社区  ›  Peter Di Cecco

在Python中直接从内置类型继承而不是从其包装类继承

  •  1
  • Peter Di Cecco  · 技术社区  · 16 年前

    我现在正在读书 Dive Into Python section 5.5 ,Pilgrim提到了从包装类UserDict继承与从内置dict类型继承之间的区别。

    我很难理解为什么有人会为包装器类而烦恼。。。从UserDict包装类(或任何其他UserXxx类)继承有什么好处?

    非常感谢您的意见。谢谢

    3 回复  |  直到 14 年前
        1
  •  3
  •   Eli Bendersky    16 年前

    你说得对:

    这门课的需求一直在增加 直接来自dict的子类(特征 从一开始就可以使用 Python版本2.2)。在 类用于创建 类似字典的子类 通过重写获得新行为

    documentation 用户词典。

        2
  •  3
  •   Alex Martelli    16 年前

    混合 UserDict.DictMixin collections 模块(Python2.6和3.*)。

        3
  •  1
  •   Matthew Schinckel    16 年前

    在你链接到的页面上,我发现了关于答案的提示:

    您不能直接将其子类化 列表,和字典。补偿 为此,Python附带了包装器 类的行为 这些内置数据类型:UserString, 普通与特殊相结合 方法,UserDict类执行 对字典的极好模仿。 直接从内置类继承类 像dict这样的数据类型。

    实际上,今天您可能希望将dict子类化,而不是UserDict。