Heim > Artikel > Backend-Entwicklung > Das Python-Programm unterscheidet zwischen dem Operator string == und der Methode __eq__()
In Python werden der Vergleichsoperator (==) und die Methode equal() beim Arbeiten mit Strings auf unterschiedliche Weise verwendet. Um zwischen dem Operator == und der Methode equal in Python zu unterscheiden, müssen wir sie mit String-Vergleichen verwenden. String-Vergleiche kommen häufig vor, wenn wir Strings in der Datenanalyse und beim maschinellen Lernen verwenden. In diesem Artikel erfahren Sie, wie Sie bei der Verwendung mit Zeichenfolgen zwischen dem Operator == und der Methode equal() unterscheiden.
== ist ein Vergleichsoperator, der zum Vergleichen zweier Zeichenfolgenwerte verwendet wird. Gibt True zurück, wenn die String-Werte gleich sind, und False, wenn die String-Werte ungleich sind. Es gibt true zurück, auch wenn die Zeichenfolgen an verschiedenen Speicherorten gespeichert sind. Es vergleicht nur die String-Werte auf Gleichheit.
Im folgenden Beispiel definieren wir zwei String-Werte str1 und str2 und initialisieren sie mit demselben String-Wert. Wenn wir die Zeichenfolgen str1 und str2 mit dem Operator == vergleichen, wird „true“ zurückgegeben, da die Werte beider Zeichenfolgen gleich sind. p>
str1 = "Hello World" str2 = "Hello World" if str1 == str2: print("The strings are equal.") else: print("The strings are not equal.")
The strings are equal.
Die Methode __eq__ in Python wird verwendet, um zu definieren, wie Objekte einer Klasse auf Gleichheit verglichen werden. Die __eq__-Methode benötigt zwei Parameter: self (das Objekt auf der linken Seite des ==-Operators) und other (das Objekt auf der rechten Seite des ==-Operators). Die Methode __eq__ gibt immer einen booleschen Wert (True oder False) zurück. Wenn etwas anderes als ein boolescher Wert zurückgegeben wird, kommt es zu einem TypeError.
Im folgenden Beispiel erstellen wir eine Klasse namens Person, die zwei Eigenschaften hat: Name und Alter. Dann definieren wir die Methode __eq__() in der Klasse, um die Eigenschaften Name und Alter des Objekts Person zu vergleichen. Erstellen Sie abschließend zwei Instanzen der Personenklasse, p1 und p2, und vergleichen Sie sie mit dem Operator ==.
class Person: def __init__(self, name, age): self.name = name self.age = age def __eq__(self, other): if isinstance(other, Person): return self.name == other.name and self.age == other.age return False p1 = Person("John", 30) p2 = Person("John", 30) if p1 == p2: print("p1 and p2 are equal")
p1 and p2 are equalUnterschied zwischen den Methoden
== Operator |
__eq__method |
---|---|
== ist das Standardverhalten in Python beim Vergleich der Werte zweier Objekte. |
Die Methode __eq__ muss explizit in der Klasse definiert werden. |
== Der Operator kann zum Vergleichen von Objekten unterschiedlicher Datentypen verwendet werden. |
Die Methode __eq__ kann nur Objekte desselben Typs vergleichen |
Es gibt nicht viel Anpassungsflexibilität. |
Die Methode __eq__ kann für bestimmte Vergleichstypen angepasst werden. |
Es kann nicht vererbt werden und sollte für jede Klasse explizit definiert werden. |
Die Methode __eq__ kann von der übergeordneten Klasse geerbt werden. |
In diesem Artikel haben wir besprochen, wie der ==-Operator und die __eq__-Methode in Python funktionieren. Der ==-Operator vergleicht Zeichenfolgen, ohne auf den Speicherort der Zeichenfolge zu achten. Die Methode __eq__ ist in der Klasse definiert und wird zum Vergleich zweier Objekte verwendet. Der Artikel diskutiert auch den Unterschied zwischen dem ==-Operator und der __eq__-Methode.
Das obige ist der detaillierte Inhalt vonDas Python-Programm unterscheidet zwischen dem Operator string == und der Methode __eq__(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!