Хранение информации



Python Хранение Данных

Память и числа в Python из песочницы  Февраль 25, 2022 – 17:52
Hi, All.

Ранее я работал с C-подобными языками, теперь же пришлось сесть за Python. Синтаксис дался легко, и наступил черёд каверзных вопросов. Под катом — статья про то как в Python реализовано хранение данных в памяти. Не претендую на истину, но пробую разобраться.

Смотрим на ссылки

Начнём с самого простого. Любые данные в Python это объект, любая переменная — ссылка на объект. Не существует никаких данных, которые не являются объектами. Для начала нам нужно научиться определять являются ли два «одинаковых» объекта одним и тем же. Для этого требуется получить адрес, что легко позволяет сделать встроенная функция id. Пробуем:

print(id(0))
Как и ожидалось, выводится что-то невразумительное. Большое число, вероятно действительно адрес. Но если каждое число, использующееся на протяжении хранить в памяти, то никакой памяти, естественно, не хватит. Проводится короткий эксперимент:

print(id(0)) print(id(0))
Два абсолютно одинаковых числа. Следовательно, все константные числа на самом деле хранятся в памяти не дублираясь. Логично — у Python и так низкая производительность, такое ухищрение позволяет сохранить последние её остатки. Окей, попробуем заполнить всю память огромным массивом нулей.

a = [0] while True: a += [0]
Бесконечный цикл, как и положено, выполняется бесконечно, но памяти практически не требует. Ещё один эксперимент:

a = [0, 0] print(id(a[0])) print(id(a[1]))

Source: habrahabr.ru

Похожие публикации:

  1. Фз о Хранении Данных
  2. Emc Хранение Данных
  3. Json Хранение Данных