【发布时间】:2017-04-19 06:07:59
【问题描述】:
为什么在下面的对象中使用元组而不是列表会增加内存使用量?
from pympler.asizeof import asizeof
class myClass(object):
__slots__ = ('l')
def __init__(self, m):
self.l = m
m = range(10)
ob = [myClass(m) for i in xrange(100000)]
print asizeof(ob)
for o in ob:
o.l = tuple(o.l)
print asizeof(ob)
第一个大小为 64697936
第二个的大小为 200697784
【问题讨论】:
-
大小有什么区别?显示输出。
-
第一个大小为 64697936 第二个大小为 200697784
-
你从哪里得到
asizeof()? -
从 pymler.asizeof 导入 asizeof
-
所以粗略地说,它的空间大约是元组的 3 倍多一点。我知道元组是不可变的,这与数组不同
标签: python list class memory tuples