Связь между ссылками, переменными и идентификаторамиPython

Программы на Python
Anonymous
Связь между ссылками, переменными и идентификаторами

Сообщение Anonymous »

Мне не удалось найти определения терминов «ссылка», «переменная» и «идентичность» ни в глоссарии Python, ни в моем учебнике. Я хотел бы уточнить свое понимание этих терминов. Допустим, у нас есть объект obj. Верно ли, что следующие фразы являются синонимами в CPython:
  • "ссылка на obj", "идентификатор obj", "адрес памяти объекта" ?
  • "переменная", "именованная ссылка", "идентификатор, привязанный к некоторому объекту" ?
    < li>"переменная a, которая ссылается на obj", "пара, состоящая из идентификатора a, идентификатора obj" ? >
P.S. Марк Лутц в своей книге «Изучение Python» (5-е изд.) на стр. 177 говорит следующее:

Читатели, имеющие опыт работы с C, могут найти ссылки на Python. аналогично указателям C (адресам памяти). Фактически, ссылки реализованы как указатели и часто выполняют одну и ту же роль, особенно с объектами, которые можно изменить на месте (подробнее об этом позже). Однако, поскольку при использовании ссылки всегда автоматически разыменовываются, вы никогда не сможете сделать с самой ссылкой что-либо полезное; это функция, которая устраняет обширную категорию ошибок C. Но вы можете думать о ссылках Python как об указателях C «void*», которые автоматически следуют при каждом использовании.

Насколько я помню, указатель в C — это просто адрес памяти. Думаю, это подтверждает, что термины «ссылка на obj» и «адрес памяти obj» являются синонимами в CPython...

Подробнее здесь: https://stackoverflow.com/questions/790 ... identities

Вернуться в «Python»