Задать вопрос
@Kinderok1
профан

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

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

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

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

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

Сорри за техническую безграмотность! Изучением программирования занимаюсь недавно :)
Спасибо!
  • Вопрос задан
  • 138 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
А где храниться и сам этот адрес объекта, для него тоже выделяется отдельное место в памяти?

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

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

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

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽