Ich las einen Artikel, dass Python einige Anzahl Objekte für eine bessere Leistung behält. Beispiel:Python integrierte Integer-Objekt
x = 3
y = 3
print(id(x))
print(id(y))
gibt die gleichen Werte aus, was bedeutet, dass x und y auf genau dasselbe Objekt verweisen. Der Artikel schlug vor, dass die Objekte mit beibehaltener Nummer ungefähr im Bereich von 1 bis 100 liegen.
Also testete ich für immer den genauen Bereich folgenden Code:
for i in range(-1000,1000):
x = int(str(i))
y = int(str(i))
if str(id(x)) == str(id(y)):
print(i)
und das Ergebnis ist recht seltsam: es druckt -5 ~ 256.
Ich frage mich, woher diese beiden magischen Zahlen kommen und warum sie benutzt werden. Werden sich diese beiden Werte in einer anderen Umgebung ändern? Danke!
Es ist ein CPython-Implementierungsdetail (Optimierung), nicht Python im Allgemeinen. –
die Antwort ist, verwenden Sie nicht IDs für nicht veränderbare Typen – Julius