Cyclic garbage collection: Python memory management, Part 2