8.4 创建大量对象时节省内存方法

    对于主要是用来当成简单的数据结构的类而言,你可以通过给类添加 属性来极大的减少实例所占的内存。比如:

    使用slots后节省的内存会跟存储属性的数量和类型有关。不过,一般来讲,使用到的内存总量和将数据存储在一个元组中差不多。为了给你一个直观认识,假设你不使用slots直接存储一个Date实例,在64位的Python上面要占用428字节,而如果使用了slots,内存占用下降到156字节。如果程序中需要同时创建大量的日期实例,那么这个就能极大的减小内存使用量了。

    关于 的一个常见误区是它可以作为一个封装工具来防止用户给实例增加新的属性。尽管使用slots可以达到这样的目的,但是这个并不是它的初衷。slots 更多的是用来作为一个内存优化工具。