Heim >Backend-Entwicklung >Python-Tutorial >Wie vergleicht Python 2 Objekte unterschiedlichen Typs?

Wie vergleicht Python 2 Objekte unterschiedlichen Typs?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-17 04:48:24549Durchsuche

How Does Python 2 Compare Objects of Different Types?

So funktioniert der Objektvergleich in Python 2

Das Verhalten von Python 2 beim Vergleich von Objekten unterschiedlicher Typen kann verwirrend sein, basiert aber auf den Implementierungsdetails, die in der Sprachspezifikation bereitgestellt werden.

Implementierungsspezifisches Verhalten

Beim Vergleich unterschiedlicher Objekte Typen verwendet Python 2 die folgende Reihenfolge:

  • Numerische Typen zuerst: Numerische Typen (Ganzzahlen, Gleitkommazahlen) haben Vorrang vor nicht numerischen Typen.
  • Lexikografische Reihenfolge für Zeichenfolgen: Zeichenfolgen werden verglichen lexikografisch.
  • Reihenfolge der Typnamen für nicht-numerische Zeichen:Objekte desselben Typs, aber ohne geeignete Vergleichsmethoden, werden nach ihren Typnamen sortiert und alphabetisch sortiert.

Beispiele

Zur Veranschaulichung:

print "100" < "2"      # True (lexicographic)
print "5" > "9"        # False (lexicographic)

print "100" < 2        # False (numeric first)
print 100 < "2"        # True (numeric first, lexicographic second)

print 5 > "9"          # False (lexicographic)
print "5" > 9          # True (numeric first, lexicographic second)

print [] > float('inf') # True (non-numeric ordering)
print () > []          # True (non-numeric ordering)

Umsetzung Details

Dieses Verhalten wird durch die CPython-Implementierung von Python 2 vorgeschrieben. Die Sprachspezifikation besagt, dass Objekte verschiedener Typen „willkürlich, aber konsistent“ angeordnet werden, wobei die Details der Implementierung überlassen werden.

Unterschiede zwischen Versionen und Implementierungen

In Python 3 führen Vergleiche zwischen Ganzzahlen und Zeichenfolgen zu einem Fehler. Andere Implementierungen von Python können ebenfalls ein etwas anderes Verhalten aufweisen.

Das obige ist der detaillierte Inhalt vonWie vergleicht Python 2 Objekte unterschiedlichen Typs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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