2013-07-20 20 views
5

In C++, le variabili locali sono memorizzate nello stack, mentre i dati creati dal nuovo operatore sono memorizzati nell'heap. Quindi, per quanto riguarda le variabili in Python? Dove sono memorizzati?Dove sono memorizzate le variabili in Python?

+0

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

+0

correlate: http://stackoverflow.com/questions/2353552/cpython-internally-what-is-stored-on-the-stack-and-heap –

+0

@AshwiniChaudhary Grazie mille! – injoy

risposta

5

Copia da Python documentation:

gestione della memoria in Python comporta un mucchio privato che contiene tutti gli oggetti Python e le strutture dati. La gestione di questo heap privato è assicurata internamente dal gestore di memoria Python. Il gestore della memoria Python ha componenti diversi che si occupano di vari aspetti della gestione dinamica dello storage, come la condivisione, la segmentazione, la preallocazione o il caching.

+0

Questo è fuorviante - sebbene dal punto di vista del codice C, la roba di Python è generalmente nell'heap, python ha ancora il proprio stack di chiamate. – Marcin

+2

@Marcin: questo è tratto dalla documentazione ufficiale di Python e la stessa risposta è fornita ad altre domande collegate. L'unica cosa da aggiungere qui è che questo è specifico per CPython, che comunque è l'implementazione più utilizzata di Python. – dkar

+0

Solo perché proviene da un documento ufficiale, non significa che si applica a questa domanda. Prima di tutto, questa domanda riguarda le variabili; in secondo luogo il documento parla di come appare l'interprete CPython durante la programmazione in C. – Marcin

Problemi correlati