В C#, Типы Значения (например: интервал, плавание, и т.д.), хранятся на стеке. Параметры метода могут также быть сохранены на стеке также. Большинство все остальное, однако, хранится на "куче". Это включает Списки, объекты, и т.д.
Я задавался вопросом, CPython делает то же самое внутренне? Что это хранит на стеке, и что это ставит "кучу"?
Все объекты Python в реализации CPython помещаются в кучу. Вы можете подробно прочитать, как работает управление памятью Python здесь в документации:
Управление памятью в Python включает частную кучу , содержащую все объекты и структуры данных Python. Управление этой частной кучей обеспечивается внутренне менеджером памяти Python. Менеджер памяти Python имеет различные компоненты, которые имеют дело с различными аспектами управления динамическим хранилищем, такими как совместное использование, сегментация, предварительное выделение или кэширование.
Обратите внимание, что Python сам по себе является просто языком и ничего не говорит о том, как должны работать внутренние компоненты, такие как управление памятью; это деталь, оставленная разработчикам.
Среда выполнения Python имеет дело только со ссылками на объекты (которые все находятся в куче): то, что происходит в стеке Python (как операнды и результаты его операций с байт-кодом), всегда является ссылками (на значения, которые находятся в другом месте) ).