Чому рядки Python виділяються в стеці?


Відповіді:


7

Цей візуалізатор не відображає рядкові дані на стеку. Він показує локальні посилання на дані купи як частину стеку викликів. Це дуже схоже на Java, де Stringпосилання є локальними змінними, які вказують на фактичні Stringоб'єкти в купі.

Візуалізатор вільний робити будь-які спрощення подання зображень, про які він піклується. Це не означає, що "рядки Python виділяються на стеці" в будь-якій реалізації Python.


1

Як сказав Грег у своїй відповіді, рядки виділяються на купі.

Візуалізатор вирішив відображати деякі об’єкти в частині "кадру", що мені здається неправильним. На щастя, це мало впливає на того, хто вивчає пітон, оскільки уражені об'єкти (int, string) незмінні. Тож міркування про наслідки все ж можливі.

Однак створюється помилкове враження, що рядки дублюються в пам'яті, коли ви робите такі речі:

x = "hello"
y = x
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.