检查文档: 支持循环垃圾收集
Python 对检测和收集涉及循环引用的垃圾的支持需要对象类型的支持,这些对象类型是其他对象的“容器”,而其他对象也可能是容器。不存储对其他对象的引用或仅存储对原子类型(例如数字或字符串)的引用的类型不需要为垃圾收集提供任何显式支持。
但是我正在研究
bytearray
的实现,虽然 bytearray
本身不使用循环 GC,但它创建的 iterator 却使用了循环 GC。
我的问题是,根据文档,它不需要它,因为 bytearray
迭代器不引用任何可能是创建它的 bytearray
本身的容器的对象,因此没有循环依赖的机会。
这背后的原因是什么?