Detaillierte Erläuterung der Methoden is und == zum Vergleichen zweier Objekte in Python

巴扎黑
Freigeben: 2017-09-07 09:47:08
Original
1302 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die relevanten Informationen zu den beiden Methoden zum Vergleichen zweier Objekte vor, nämlich und == in Python. Ich hoffe, dieser Artikel kann allen bedürftigen Freunden helfen

Is und == in Python sind zwei Möglichkeiten, zwei Objekte zu vergleichen

In Python gibt es zwei Möglichkeiten zu vergleichen, ob zwei Objekte gleich sind, nämlich is und ==, zwischen den beiden ist unterschiedlich

  • == vergleicht Werte (wie die Methode equal in Java)

  • ist vergleicht Referenzen (kann als Vergleich von Speicheradressen angesehen werden, ähnlich wie = = in Java)

für:


>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False
Nach dem Login kopieren

aufgrund von 1 und '1' Es ist unterschiedlich, ob es ein ist Wert oder eine Referenz, daher ist das Ergebnis falsch

Für:


>>> n = 1
>>> n is 1
True
Nach dem Login kopieren

Hier ist ein Wissenspunkt, einfach Es wird gesagt, dass es sich um primitive Typen handelt Wie bei Ganzzahlen ist der Referenzvergleich jedoch ein Wertvergleich. Für Zahlen zwischen -5 und 256 wird ein Array im Speicher reserviert, um diese Zahlen direkt zu speichern . Für Zahlen außerhalb dieses Bereichs wird ein neues int-Objekt

erstellt. Ein einfaches Beispiel lautet wie folgt:


#a和b的值超出256
>>> a = 257
>>> b = 257
>>> a is b
False

#a和b的值在-5和256之间
>>> a = 256
>>> b = 256
>>> a is b
True
Nach dem Login kopieren

Wie im obigen Beispiel gezeigt, initialisiert Python keinen neuen Speicherplatz für die Variable, solange es sich um eine Ganzzahl zwischen -5 und 256 handelt. Sobald der Wert jedoch 256 überschreitet, wird neuer Speicherplatz zugewiesen.

Sie können den Unterschied in den Speicheradressen der beiden Objekte auch direkt erkennen, indem Sie die IDs der beiden Objekte ausdrucken, wie unten gezeigt:


#a和b的值超出256
>>> a = 257
>>> b = 257
>>>
>>>
>>> id(a)
140638347685960
>>> id(b)
140638347686008

#a和b的值在-5和256之间
>>> a = 256
>>> b = 256
>>> id(a)
140638347656864
>>> id(b)
140638347656864
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methoden is und == zum Vergleichen zweier Objekte in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage