我试图理解在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__?
在这里,我想知道为什么两种场景中的内存消耗都相同?