In Python zijn pointers niet expliciet beschikbaar zoals in andere programmeertalen zoals C++. Maar ze zijn impliciet gebruikt. Python gebruik wijzers achter de schermen om geheugenmanagement en andere geheugenrelaterde optimalisaties uit te voeren. Maar het bevat niet de traditionele implementatie of het gebruik van pointers.
Geen van Python’s standaard functies of operatoren hebben de capaciteit om het geheugenadres van een variabele op te vragen en te manipuleren, wat de meest voorkomende gebruik van pointers in C++-achtige talen is.
In Python, verwijst elke variabele in plaats daarvan naar een plek in het geheugen waar de waarde van die variabele wordt opgeslagen. Dit wordt een “reference” of verwijzing genoemd. Wijzigingen aan de waarde van de variabele affecteren de brondata in het geheugen, wat betekent dat Python variabelen in feite fungeren als pointers.
Neem een voorbeeld van de Python-lijst hieronder:
```
a = [1, 2, 3]
b = a
```
In dit geval verwijzen zowel `a` als `b` naar dezelfde locatie in het geheugen – de locatie van de originele lijst `[1, 2, 3]`.
Als je een wijziging aanbrengt aan de lijst via variabele `a`:
```
a.append(4)
```
en je print `b` uit, krijg je `b = [1, 2, 3, 4]`, omdat `b` wijst naar dezelfde locatie in het geheugen als `a`.
Dit is vergelijkbaar met hoe pointers werken in talen als C++ en Java, behalve dat het volledig abstract en geautomatiseerd is in Python, en het heeft ook geen directe manier om het geheugenadres van een variabelek of object te manipuleren.
In Python wordt de geheugenadministratie gehandeld door de Python-geheugenmanager, zodat ontwikkelaars minder tijd besteden aan het denken over hoe geheugen wordt toegewezen en vrijgemaakt.