1、slots简介
Python中,每个类都会有实例属性,默认情况下Python会使用一个字典去保存一个对象的实例属性(对象.dict),这样就会让这个实例化的对象没有任何的限制,可以随意的给对象做任何属性设置,为了避免这个问题,我们可通过__slots__
来限制实例对象的属性。
1、所以slots是如何做到节约内存的?
由于每次实例化一个对象都需要分配一个全新的dict,会浪费空间,如果有了slots
,它只会分配一个元组,里面包括了当前能访问到的属性,因此类的实例只能拥有slots
中定义的变量,而且不能再增加新变量。
2、slots最终的目的是什么?
最终目的—> 节约内存
2、slots使用
1.没有使用slots
class User(object):
def __init__(self, name, pwd, is_login=False):
self.name = name
self.pwd = pwd
self