Ich habe Folgendes ausgeführt:
Code: Select all
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
Aber als ich Folgendes ausgeführt habe:
Code: Select all
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
Als ich für x- und y-Variablen ausgeführt habe, habe ich dieselbe Speicheradresse erhalten. Aber wenn ich für m1 und s1 für denselben Wert ausgeführt werde, erhalte ich unterschiedliche Speicheradressen. Für den Wert wird jedoch dieselbe Speicheradresse bereitgestellt. Für die Variable werden jedoch unterschiedliche Adressen für m1 und s1 bereitgestellt. Warum? Bitte klären Sie es