Python - идентификатор указателя и объекта - PullRequest
0 голосов
/ 26 сентября 2019

Мы говорим, что в Python каждому создаваемому объекту присваивается номер, который однозначно его идентифицирует.

Когда мы ставим точку на 500 и получаем идентификатор как a, так и 500:

a=500
id(a), id(500)
(140733559789896, 140733559789992)

означает ли это, что идентификатор ссылки a (140733559789896) «указывает» на объект 500 как точки на 500?

И почему 140733559789992 не является идентификатором объекта 500?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

означает ли это, что идентификатор ссылки a (140733559789896) «указывает» на объект 500 как точки на 500?

Согласно документам для id , это адрес объекта 500 в памяти.

И почему 140733559789992 не идентификатор объекта 500?

Это так.500 в строке a = 500 и 500, которые вы передаете id(500) в строке 2, являются разными объектами, следовательно, разными идентичностями.

0 голосов
/ 26 сентября 2019

id(500) создает новый объект в памяти и присваивает ему идентификатор.Это не тот же объект, что и a, даже если они имеют одно и то же значение.

Представьте, что у нас есть этот фрагмент кода:

a = 500
b = 500

Ожидаем ли мы id(a) == id(b)?Конечно нет - это разные объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...