3 Stimmen

Python: Frage zur Objektidentität?

Mögliches Duplikat:
Python-Operator "is" verhält sich unerwartet bei ganzen Zahlen

a=123>>>b=123>>>a is bTrue>>>id(a)==id(b)True

Meine Frage ist, warum ist id(a) dasselbe wie id(b)?
Handelt es sich nicht um zwei verschiedene Instanzen der Klasse int?

3voto

jackbot Punkte 2861

Normalerweise verweisen kleine Ganzzahlen aus Effizienzgründen auf dasselbe Objekt im Speicher.

2voto

nosklo Punkte 204121

int s zwischengespeichert werden. Dies ist ein Implementierungsdetail, das keine Rolle spielen sollte, da int s sind ohnehin unveränderlich.

1voto

Variablen

a and b 

beides sind Verweise auf das Objekt 123, dessen id eindeutig ist.

wenn Sie denselben Wert zuweisen 123 zu zwei Diff-Variablen a y b ,

dann dasselbe Objekt 123 wird beiden Variablen zugewiesen a y b aber die Anzahl der Verweise auf dieses Objekt erhöht in Ihrem Fall die Anzahl der Verweise auf das Objekt 123 でございます zwei

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X