python中的 __slots__
__slots__的作用是防止给class instance分配dict,达到控制instance 成员和节省内存的作用
class Slots(object): __slots__=("name","age") def __init__(self): pass a=Slots() a.name="asdfa" print a.__dict__ a.x=66 #此处异常
不过这个__slots__只对当前类起作用,对于子类就不起重用了,子类如果没有设置__slots__,那么它还是可以任意的设置instance成员。
如果在__slots__中有__dict__成员,那么这个__slots__其实就起不到限制instance成员数量和节省内存的作用了。