Я выполнил следующее:
Код: Выделить всё
x=5
id(x)
140717517440040
id(5)
140717517440040
y=5
id(y)
140717517440040
id(5)
140717517440040
import sys
print(sys.getrefcount(x))
4294967295
print(sys.getrefcount(5))
4294967295
Но когда я выполнил следующее:
Код: Выделить всё
mcavar=12345678901
id(m1)
1265225292816
id(12345678901)
1265225292976
s1=12345678901
id(s1)
1265225293296
id(12345678901)
1265225292976
print(sys.getrefcount(12345678901))
2
print(sys.getrefcount(m1))
2
print(sys.getrefcount(s1))
2
Когда я выполнял переменные x и y, я получил тот же адрес памяти. Но при выполнении для m1 и s1 для одного и того же значения я получаю другой адрес памяти. Но для значения он предоставляет тот же адрес памяти. Но для переменной он предоставляет разные адреса для m1 и s1. Почему? Пожалуйста, уточните это
Подробнее здесь: https://stackoverflow.com/questions/793 ... ence-count
Мобильная версия