__slots_
使用`__slots__`能显著减少Python对象内存占用的根本原因是:
A 禁止了动态属性添加
B 将属性存储从哈希表改为定长数组
C 启用了对象的内存共享机制
D 自动应用了弱引用技术
解析:
在Python中,__slots__的主要作用是显式声明类实例可以拥有的属性,并阻止为每个实例创建__dict__字典来存储属性。默认情况下,Python对象将其属性存储在一个字典(哈希表)中,这提供了灵活性(可以动态添加属性)但带来了内存开销。使用__slots__后,Python不再为每个实例创建字典,而是为每个实例分配一个固定大小的数组来存储槽中声明的属性。这显著减少了内存占用,因为数组比字典的内存开销小得多。
