Кортеж ведет себя по-разному при использовании id() в оболочке IDLE и файле .py ⇐ Python

Программы на Python
Anonymous
Кортеж ведет себя по-разному при использовании id() в оболочке IDLE и файле .py

Сообщение Anonymous »

Предположим, я присваиваю одно и то же значение кортежа двум переменным в оболочке IDLE и сравниваю их id()

Код: Выделить всё

>>> a = (1,2,3)
>>> b = (1,2,3)
>>> id(a) == id(b)
False
Это дает false, как и ожидалось, но если я запустил его эквивалент в файле .py

Код: Выделить всё

a = (1,2,3)
b = (1,2,3)
print(id(a) == id(b))
Это дает результат True.
Хотя, если я сравниваю наборы, я получаю False, как и ожидалось

Код: Выделить всё

a = {1,2,3}
b = {1,2,3}
print(id(a) == id(b))
Пожалуйста, объясните, почему сравнение идентификаторов двух одинаковых кортежей дает разные результаты в IDLE и файле .py (или с этим сталкиваюсь только я). Я использую Python 3.12.4


Подробнее здесь: https://stackoverflow.com/questions/798 ... nd-py-file

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