Heim > Artikel > Backend-Entwicklung > Detaillierte Analyse der Verwendung von Operatorüberladungen in Python
Die Beispiele in diesem Artikel beschreiben die Verwendung der Operatorüberladung in Python. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt: Die Klasse
kann den Python-Operator
überladen. Durch Überladen des Operators werden unsere Objekte gleich die eingebauten. Die Methode mit dem Namen __X__ ist ein spezieller Hook, und Python fängt den Operator durch diesen speziellen Namen ab, um eine Überladung zu erreichen. Python ruft bei der Berechnung von Operatoren automatisch eine solche Methode auf, zum Beispiel:
Wenn das Objekt die Methode __add__ erbt, wird diese Methode aufgerufen, wenn sie im +-Ausdruck erscheint. Durch Überladung verhalten sich benutzerdefinierte Objekte wie integrierte Objekte.
Überladen von Operatoren in Klassen
1. Durch das Überladen von Operatoren können Klassen Standard-Python-Operationen abfangen.
2. Klassen können alle Python-Ausdrucksoperatoren überladen.
3. Klassen können Objektoperationen überlasten: Drucken, Funktionsaufruf, Qualifizierung usw.
4. Durch Überladen sehen Klasseninstanzen eher wie integrierte aus.
5. Überladung wird durch speziell benannte Klassenmethoden implementiert.
Die Operationsbeschreibung des Methodennamens ist der Aufrufausdruck __nit__ Konstruktionsfunktionserstellungsobjekt: class ()
__ del__ wenn die Strukturfunktion das Objekt freigibt __add__ "+" "+" x + y
__or__ "|" y
__repr__ Drucken, Konvertieren 🎜>__getattr__ Attributreferenz x.undefiniert
__getitem__ Index x[key ], for-Schleife, im Test
__setitem__ Indexzuweisung x[key] = value
__getslice__ Sharding len(x)
__cmp__ Compare x == Y , x < y
__radd__ Der Operator „+ " auf der rechten Seite Nichtinstanz + x
Beispiel:
__getitem__ fängt alle Indizes ab Operation
>>> class indexer: def __getitem__(self,index): return index ** 2 >>> x = indexer() >>> for i in range(5): print x[i] #x[i]将调用__getitem__(x,i) 0 1 4 9 16