为什么带有__slots__的python类占用更多内存?

时间:2017-02-02 07:13:56

标签: python

注意:请在将其标记为重复或不相关之前完整地完成我的问题,请!而且,如果这是一个愚蠢的问题,请原谅我......!

我用插槽创建了两个类,没有创建了一个类,如下所示:

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()的输出:

enter image description here

P.S:我甚至试过插槽 =('a','b','c'),结果仍然相同

0 个答案:

没有答案