Python ใช้สองเทคนิคทำความสะอาด Garbage หนึ่งคือ Reference Counting ซึ่งส่งผลต่อทุก Objects แต่ไม่สามารถทำความสะอาด Objects ที่อ้างอิงกันโดยตรงหรือโดยอ้อมได้ นี่คือจุดที่ Garbage Collector จริงๆ เข้ามาช่วย: Python มี Module gc ที่ค้นหา Cyclic References ใน Objects ที่มันรู้จัก เฉพาะ Objects ที่อาจเป็นส่วนหนึ่งของ Reference Cycle เท่านั้นที่เข้าร่วม Cyclic GC เช่น List เข้าร่วมได้ แต่ String ไม่ได้ เพราะ String ไม่อ้างอิง Objects อื่นๆ
Python Classes ทั้งหมดและ Instances ของมันถูก Track โดย Cyclic GC อัตโนมัติ Types ที่ Define ใน C ไม่ได้ ถ้ามันไม่put in a little effort Builtin Types ทั้งหมดที่อาจเป็นส่วนหนึ่งของ Cycle ทำได้ แต่นี่หมายความว่า GC Module รู้จักเฉพาะ Types ที่เล่นตามกติกา
นอกจาก Collection Mechanism แล้ว Python ยังมี Memory Allocator แบบ Aggregating ของตัวเอง (obmalloc) ซึ่งจัดสรร Memory Arenas ทั้งหมดและใช้ Memory สำหรับ Objects ขนาดเล็กส่วนใหญ่ที่มันสร้าง Python ตอนนี้ Free Areas เหล่านี้เมื่อว่างเปล่าทั้งหมด (นานมากมันไม่ทำ) แต่การ Empty Area จริงๆ ค่อนข้าง Rare เพราะ Python Objects ไม่ Movable คุณไม่สามารถย้าย Stragglers ไป Area อื่นได้