2013-07-20 18 views
5

In C++ werden die lokalen Variablen im Stapel gespeichert, während die vom neuen Operator erstellten Daten im Heap gespeichert werden. Was ist mit den Variablen in Python? Wo sind sie gespeichert?Wo sind die Variablen in Python gespeichert?

+0

Verwandte: http://stackoverflow.com/questions/14546178/does-python-have-a-stack-heap-and-how-is-memory-managed –

+0

Verwandte: http://stackoverflow.com/questions/2353552/cpython-intern-was-ist-gespeichert-auf-dem-stack-and-haufen –

+0

@AshwiniChaudhary Vielen Dank! – injoy

Antwort

5

Kopieren von Python documentation:

Speicherverwaltung in Python beinhaltet einen privaten Heap alle Python-Objekte und Datenstrukturen enthalten. Die Verwaltung dieses privaten Heapspeichers wird intern vom Python-Speichermanager sichergestellt. Der Python-Speichermanager hat verschiedene Komponenten, die sich mit verschiedenen dynamischen Speicherverwaltungsaspekten befassen, wie Teilen, Segmentierung, Vorabzuordnung oder Caching.

+0

Das ist irreführend - obwohl aus der Perspektive des C-Codes das Python-Objekt im Allgemeinen auf dem Heap liegt, hat Python immer noch seinen eigenen Aufruf-Stack. – Marcin

+2

@Marcin: Dies ist aus der offiziellen Python-Dokumentation und die gleiche Antwort wird auf andere verknüpfte Fragen gegeben. Das einzige, was hier hinzugefügt wird, ist, dass dies spezifisch für CPython ist, welches ohnehin die am weitesten verbreitete Implementierung von Python ist. – dkar

+0

Nur weil es aus einem offiziellen Dokument stammt, heißt das nicht, dass es sich auf diese Frage bezieht. Zuallererst geht es bei dieser Frage um Variablen; Zweitens geht es in dem Dokument darum, wie der CPython-Interpreter aussieht, wenn er in C programmiert. – Marcin

Verwandte Themen