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成员数量和节省内存的作用了。

posted @ 2016-06-14 10:24  瘸腿  阅读(180)  评论(0编辑  收藏  举报