2013-07-20 37 views
5

W C++ zmienne lokalne są przechowywane w stosie, a dane utworzone przez operatora nowego są przechowywane w stercie. A co z zmiennymi w Pythonie? Gdzie są przechowywane?Gdzie są przechowywane zmienne w Pythonie?

+0

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

+0

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

+0

@AshwiniChaudhary Wielkie dzięki! – injoy

Odpowiedz

5

Kopiowanie Python documentation:

Zarządzanie pamięcią w Pythonie polega prywatną sterty zawierający wszystkie obiekty Python i struktur danych. Zarządzanie tą prywatną stertą jest zapewnione wewnętrznie przez menedżera pamięci Pythona. Menedżer pamięci Pythona ma różne komponenty, które dotyczą różnych aspektów dynamicznego zarządzania pamięcią masową, takich jak udostępnianie, segmentacja, wstępna alokacja lub buforowanie.

+0

To wprowadza w błąd - chociaż z punktu widzenia kodu C rzeczy pythona zwykle znajdują się na stercie, python wciąż ma własny stos wywołań. – Marcin

+2

@Marcin: To jest z oficjalnej dokumentacji w języku Python i ta sama odpowiedź jest podawana do innych powiązanych pytań. Jedyną rzeczą, którą można tutaj dodać, jest to, że jest to specyficzne dla CPython, które i tak jest najczęściej używaną implementacją Pythona. – dkar

+0

To, że pochodzi z oficjalnego dokumentu, nie oznacza, że ​​dotyczy tego pytania. Po pierwsze, to pytanie dotyczy zmiennych; po drugie dokument dotyczy tego, jak wygląda interpreter CPython podczas programowania w C. – Marcin

Powiązane problemy