In Python is de “vuilnisman” (garbage collector) het systeem gedeelte dat automatisch geheugen beheert. Het maakt geheugen vrij dat niet langer nodig of toegankelijk is, aan de hand van de referentietelling en generatie cycli.
Hier is een eenvoudige uitleg:
In Python, als een object wordt gecreëerd, wordt het geheugenruimte toegewezen. Elk object heeft een referentietelling. Elke keer als het object wordt gerefereerd (bijvoorbeeld wanneer het wordt toegewezen aan een variabele of opgenomen in een lijst), wordt de referentietelling verhoogd. Elke keer als een referentie naar het object wordt verwijderd (bijvoorbeeld met “del” of wanneer de scope waarin het object was gecreëerd verdwijnt), wordt de referentietelling verlaagd. Wanneer de referentietelling naar 0 daalt, maakt de vuilnisman het geheugen vrij.
Echter, het is mogelijk dat er referentiecycli ontstaan waarin een groep objecten elkaar onderling refereren en nooit een referentietelling van 0 bereiken, ondanks dat ze onbereikbaar zijn door de rest van de applicatie. In dit geval gebruikt Python de “generational” garbage collection, die cycli van onbereikbare objecten detecteert en geheugen vrijmaakt.
Het vuilnisman systeem in Python kan door de ontwikkelaar worden beheerd met de “gc” module. Deze module kan worden gebruikt om de frequentie waarmee de vuilnisman wordt uitgevoerd te controleren, om handmatig de vuilnisman uit te voeren, of om andere gedetailleerde configuraties in te stellen. Hoewel de vuilnisman meestal automatisch werkt, kan dit handig zijn in gevallen waar fijnere controle over geheugenbeheer noodzakelijk is.