RSS
菜单

Python 的 __slots__ 是什么?有什么好处?

__slots__ = ('name', 'age') 声明类只允许这些属性,禁止动态添加其他属性(否则 AttributeError)。好处:① 节省内存——每个实例不再有 __dict__(可省大量内存,百万级对象场景显著);② 属性访问更快。代价:① 不能动态加属性(灵活性降低);② 需要 __dict__ 时显式加入 __slots__;③ 继承时子类也要定义 __slots__ 才生效;④ 默认不参与弱引用(可加 '__weakref__')。应用:数据类、大量实例的性能场景。

下载推广海报

圈内讨论推广海报

《Python 的 __slots__ 是什么?有什么好处?》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。