Есть ли в Python статические объекты, объекты стека и объекты кучи?
С прагматики языка программирования, Скотт
Время жизни объекта обычно соответствует одному из трех основных механизмов распределения памяти, используемых для управления пространством объекта:
Статическим объектам присваивается абсолютный адрес, который сохраняется на протяжении всего выполнения программы.
Стековые объекты распределяются и освобождаются в порядке "последний пришел - первый вышел", обычно в сочетании с вызовами и возвратами подпрограмм.
- Объекты кучи могут быть выделены и освобождены в произвольные моменты времени. Они требуют более общего (и дорогого) алгоритма управления хранилищем.
Язык программирования C имеет статические объекты, объекты стека и объекты кучи.
Есть ли в Python статические объекты, объекты стека и объекты кучи?
В другом посте я видел, что CPython выделяет все объекты в куче. Означает ли это, что все объекты в Python являются объектами кучи?
Но у Python также есть статические методы. Являются ли статические методы в Python статическими объектами в книге PLP?
Благодарю.
1 ответ
Объекты Python в основном являются объектами кучи - однако в CPython есть некоторые специальные одноэлементные значения PyObject, которые являются статическими в C; хотя это деталь реализации. Например, обычные встроенные типы имеют статическую продолжительность хранения. Нет известных мне стековых (Python) объектов.
Статическая продолжительность хранения, как здесь понимается, не имеет абсолютно никакого отношения к статическим методам.