Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Analyse der Verwendung von Operatorüberladungen in Python

Detaillierte Analyse der Verwendung von Operatorüberladungen in Python

高洛峰
高洛峰Original
2017-03-06 13:43:461315Durchsuche

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

Für weitere Einzelheiten Erläuterungen zur Analyse der Operatorüberlastung in Python und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

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