python通过__slots__优化内存

python通过__slots__优化内存

当程序需要大量实例的时候,可以用__slots__去实现内存优化,因为python解释器会创建__dict__属性去存储所有类实例的名字,我们知道因为哈希表的原因,字典的内存消耗比较大,我默认用tuple来存储,这样解释器就不会用字典去存储实例属性的名字了,从而达到节约内存的目的,__slots__里面不能放不存在的实例属性名,否则会抛出一场,不加__slots__属性,python解释器会自动设置__weakref__属性,如果用了__slots__需要手动把__weakred__加入到__slots__中,使7对象支持弱引用