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

Python中存在可变的命名元组吗?,第1张

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__
基于实例的实例占用更少的内存。这对于具有属性值的实例非常重要,该属性值不打算具有参考周期。如果您需要创建数百万个实例,则可能有助于减少内存使用。这是一个说明性的例子。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5623752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存