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

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

  

*Рассмотрим простой код:*  

1| a = 444  

2| a  

  

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

**Вопрос:** как я понимаю, переменная (а) хранит в себе адрес в памяти объекта PyObject? А где храниться и сам этот адрес объекта, для него тоже выделяется отдельное место в памяти?   

  

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

**Вопрос:** правильно ли я понимаю работу кода, описанную во второй строке? Ну и здесь тоже непонятно то, каким образом интерпретатор получает адрес объекта PyObject числа 444, где храниться информация о переменной (а)?  

  

Сорри за техническую безграмотность! Изучением программирования занимаюсь недавно :)  

Спасибо! 

> А где храниться и сам этот адрес объекта, для него тоже выделяется отдельное место в памяти?

  

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

  

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

  

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