@Kinderok1
профан

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

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

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы