栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python中UserDict类的优点

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中UserDict类的优点

UserDict.UserDict
自从Python
2.2起,它没有实质性的附加值,因为,正如@gs所提到的,您现在可以
dict
直接子类化-它仅用于与Python
2.1及更早版本的向后兼容性,而内置类型不能是子类。仍然将其保留在Python
3中(现在已在
collections
模块中的适当位置),因为如文档现在所述,


直接从dict继承子类的能力已部分取代了对此类的需要。但是,由于可以将底层字典作为属性来访问,因此可以更轻松地使用此类。

UserDict.DictMixin
在Python 2中非常方便-正如文档所述,

该模块定义了一个mixin DictMixin,它为已经具有最小映射接口的类定义了所有字典方法。这大大简化了需要替换为词典的编写类(例如,搁置模块)。

您将其子类化,定义一些基本方法(至少

__getitem__
对于没有能力获取键或进行迭代的只读映射就足够了;同样,
keys
如果您需要这些能力,则可能
__setitem__
;并且您有没有能力的R
/
W映射删除项目;添加
__delitem__
以提供完整功能,并可能出于性能原因而覆盖其他方法),并获得
dict
丰富API的完整实现(
update
get
等)。模板方法设计模式的一个很好的例子。

在Python 3中,

DictMixin
它消失了;您可以通过依赖(或仅用于R / O映射)获得 几乎
相同的功能。它虽然更不方便,但还是有点优雅(请参阅本期,该主题以“无法解决”结束;简短的讨论值得一读)。
collections.MutableMapping``collections.Mapping



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404562.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号