为什么有和没有__slots__的内存消耗是一样的?

时间:2017-01-27 08:00:38

标签: python

我试图理解在Python中使用插槽,所以我创建了两个类,一个用插槽,另一个没用它,然后,我创建了大约一百万个对象并打印两个对象的大小:

>>> class Foo(object): pass
>>> class Bar(object): __slots__ = ()
>>> foos = [Foo() for f in xrange(1000000)]
>>> bars = [Bar() for b in xrange(1000000)]
>>> import sys
>>> sys.getsizeof(foos)
4348732
>>> sys.getsizeof(bars)
4348732

令人惊讶的是,这两个对象的大小相同。所以现在我很困惑为什么它说插槽节省内存?

P.S。我在Linux上试过这个,Python 2.7

这与以下内容不重复: Usage of __slots__?

在这里,我想知道为什么两种场景中的内存消耗都相同?

0 个答案:

没有答案