veröffentlicht am: 13.04.2020 zuletzt aktualisiert am: 02.02.2023
Oft ist es einfacher, mit kürzeren Zahlen zu rechnen, als mit endlos langen wie π/Pi. Für das Runden von Zahlen oder auch eigenen Klassen stellt Python viele Möglichkeiten bereit, von denen ich dir im Folgenden ein paar vorstellen möchte.
In Python gibt es – um zwei Objekte miteinander zu vergleichen – zwei Paare von Operatoren.Die Operatoren == (gleich) und != (ungleich) lassen dich prüfen, ob zwei Objekte den gleichen Wert haben, während die Operatoren is und is not dich überprüfen lassen, ob die Identität zweier Objekte miteinander übereinstimmt.
zahl = 7 zahl == 7 # True zahl != 6 # True zahl != 7 # False
Anmerkung:In Python 2 Code war auch <> noch zulässig, um zu überprüfen, ob zwei Objekte ungleich sind.
zahl is 7 # True zahl is not 6 # True zahl is not 7 # False
Der Unterschied zwischen den Operatorenpaaren wird erst deutlich bei der Verwendung komplexerer Objekte wie Listen:
[3, 2] == [3, 2] # True [3, 2] != [3, 2] # False [3, 2] is [3, 2] # False [3, 2] is not [3, 2] # True
Im vorigen Beispiel fällt auf, dass is und is not ein anderes Resultat ergeben, was daher kommt, dass die beiden Listen nicht das gleiche Objekt sind.Wenn du stattdessen zwei Variablen mit der gleichen Liste als Inhalt vergleichst, kehren sich die Resultate des Operatorenpaares um, wie im folgenden Code zu sehen:
liste = liste1 = [3, 2] liste == liste1 # True liste != liste1 # False liste is liste1 # True liste is not liste1 # False
Mit der magic method __eq__ kannst du selbst das Verhalten deiner Klasse beim Vergleichen mit den Operatoren == und != beeinflussen, was hier anhand eines einfachen Beispiels dargestellt werden soll.
class Test(object): def __init__(self, zahl): self.zahl = zahl def __eq__(self, other): return self.zahl == other
test_object = Test(42) test_object == 42 # True test_object != 42 # False test_object is 42 # False test_object is not 42 # True
test_object1 = test_object test_object == test_object1 # True test_object != test_object1 # False test_object is test_object1 # True test_object is not test_object1 # False
Python macht mit seinen beiden Operatorenpaaren das Vergleichen von Objekten für uns einfach und mit der magic method __eq__ ist es uns möglich, selbst zu definieren, wie Objekte unserer Klassen mit anderen verglichen werden sollen.
Hast du noch Fragen oder weitere Beispiele zu dem Thema?Schreib es bitte in die Kommentare.
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig