注意:请在将其标记为重复或不相关之前完整地完成我的问题,请!而且,如果这是一个愚蠢的问题,请原谅我......!
我用插槽创建了两个类,没有创建了一个类,如下所示:
import guppy
class A(object):
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
class B(object):
__slots__ = ['a', 'b', 'c']
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
a = [A() for i in xrange(1000000)]
b = [B() for i in xrange(1000000)]
print guppy.hpy().heap()
在程序结束时,我正在打印Python堆的内存保护程序。 令我惊讶的是,插槽的程序占用了更多内存。这是guppy.hpy()。heap()的输出:
P.S:我甚至试过插槽 =('a','b','c'),结果仍然相同