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

Python中存在可变的命名元组吗?

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

Python中存在可变的命名元组吗?

还有就是一个可变的替代方案

collections.namedtuple
-
recordclass。

它具有与API相同的API和内存占用量,

namedtuple
并且支持分配(它也应该更快)。例如:

from recordclass import recordclassPoint = recordclass('Point', 'x y')>>> p = Point(1, 2)>>> pPoint(x=1, y=2)>>> print(p.x, p.y)1 2>>> p.x += 2; p.y += 3; print(p)Point(x=3, y=5)

对于python 3.6及更高版本

recordclass
(从0.5开始)支持typehints:

from recordclass import recordclass, RecordClassclass Point(RecordClass):   x: int   y: int>>> Point.__annotations__{'x':int, 'y':int}>>> p = Point(1, 2)>>> pPoint(x=1, y=2)>>> print(p.x, p.y)1 2>>> p.x += 2; p.y += 3; print(p)Point(x=3, y=5)

有一个更完整的示例(还包括性能比较)。

由于0.9

recordclass
库提供了另一个变体-
recordclass.structclass
工厂功能。它可以产生类,这些类的实例比
__slots__
基于实例的实例占用更少的内存。这对于具有属性值的实例非常重要,该属性值不打算具有参考周期。如果您需要创建数百万个实例,则可能有助于减少内存使用。这是一个说明性的例子。



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

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

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