@Kinderok1
профан

Как интерпретатор Python обрабатывает переменные и что подразумевается под ссылками?

При изучении языка Python возникло пару вопросов относительно того, как Python работает со ссылками (т.е. переменными)

Рассмотрим простой код:
1| a = 444
2| a

Первая строка (1|): компьютер выделяет свободную ячейку в памяти, где создается объект PyObject типа integer со значением 444. Переменная (a) теперь становиться ссылкой, которая указывает на созданный объект.
Вопрос: как я понимаю, переменная (а) хранит в себе адрес в памяти объекта PyObject? А где храниться и сам этот адрес объекта, для него тоже выделяется отдельное место в памяти?

Вторая строка (2|): для процессора создается инструкция по типу "вот тебе адрес в памяти, пришли мне содержимое этой ячейки". Процессор присылает нашей программе объект Pyobject, ну и дальше ничего не происходит, так как интерпретатор не видит повода для создания дальнейших инструкций процессору.
Вопрос: правильно ли я понимаю работу кода, описанную во второй строке? Ну и здесь тоже непонятно то, каким образом интерпретатор получает адрес объекта PyObject числа 444, где храниться информация о переменной (а)?

Сорри за техническую безграмотность! Изучением программирования занимаюсь недавно :)
Спасибо!
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
А где храниться и сам этот адрес объекта, для него тоже выделяется отдельное место в памяти?

В текущем кадре стека.

для процессора создается инструкция по типу "вот тебе адрес в памяти, пришли мне содержимое этой ячейки".

Нет, компилятор просто выбрасывает неиспользуемую строку. По крайней мере CPython.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы