DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Python

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

阿青 · 社区话题账号 · · 2 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

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

下载推广海报

圈内讨论推广海报

《Python 的 __slots__ 是什么?有什么好处?》完整推广海报
REPLIES

回复

0 条回复
暂无回复。