[PYTHON] Berechnung der selbst erstellten Klasse und der vorhandenen Klasse

Ich möchte eine Multiplikation meiner eigenen Klasse und einer vorhandenen Klasse durchführen

Was soll ich beispielsweise tun, wenn ich ein konstantes Vielfaches der häufig als Beispiel angegebenen "Punktklasse" ausführen möchte? Als Beispiel

class Point():
    def __init__(self,x,y):
        self.x = x
        self.y = y

Definieren wir jedoch die Multiplikation. Nehmen wir als Spezifikation an, dass beim Multiplizieren von Punkten ein Punkttyp zurückgegeben wird, der mit x und y multipliziert wird, und beim Multiplizieren mit einer Ganzzahl ein Punkttyp zurückgegeben wird, der mit einer Konstanten multipliziert wird.

Fazit

Definieren Sie zunächst die Operation mit \ _ \ _ mul__

class Point():
...
    def __mul__(self, other):
        if isinstance(other,Point):
            return Point(self.x*other.x,self.y*other.y)
        elif isinstance(other,int):
            return Point(self.x*other,self.y*other)
        else:
            return NotImplemented
...

Verwenden Sie \ _ \ _ rmul__, da dies allein keine Operationen von rechts unterstützt Zum Beispiel, wenn mul in einer Operation definiert ist, die das Austauschgesetz enthält.


def __rmul__(self,other):
   return self*other

Aber es ist okay, wenn du schreibst Wenn Sie andere * = usw. verwenden möchten, können Sie \ _ \ _ imul__ aufrufen.

Recommended Posts

Berechnung der selbst erstellten Klasse und der vorhandenen Klasse
Beispiel für die Verwendung von Klassenvariablen und Klassenmethoden
Vergleich von Klassenvererbung und Konstruktorbeschreibung
Berechnung der Anzahl der verstrichenen Jahre und der Anzahl der verstrichenen Monate einschließlich des Nebenjahres
Berechnung der technischen Indikatoren durch TA-Lib und Pandas
[Python] Klassentyp und Verwendung des datetime-Moduls
Zusammenfassung der Pickle- und Unpickle-Verarbeitung von benutzerdefinierten Klassen
Über Klasse und Instanz
Parallelisierung der Klassenmethode
Berechnung der Standardabweichung und des Korrelationskoeffizienten in Python
[Python] Berechnung der Differenz von Datum und Zeit in Monaten und Jahren
Klassen- und statische Methoden
Starten Sie die numerische Berechnung mit Python (mit Homebrew und Pip).
Beispiel für das Abrufen des Modulnamens und des Klassennamens in Python
Übersicht über klassenbasierte generische Ansichten und geerbte Klassenbeziehungen
[Python] Arten statistischer Werte (Features) und Berechnungsmethoden
[Python] Herons Formelfunktionalisierung und Berechnung der maximalen Fläche
Berechnung der Kilometerzähler mit CNN und Tiefenschätzung Teil 2 (CNN SLAM # 2)
Referenzreihenfolge von Klassenvariablen und Instanzvariablen in "self. Klassenvariablen" in Python
[Einführung in Scipy] Berechnung der Lorenzkurve und des Gini-Koeffizienten ♬
Ableitung des EM-Algorithmus und Berechnungsbeispiel für den Münzwurf
Das Problem der Lügner und der Ehrlichkeit
Verschiedene Klassenmethoden und statische Methoden
Mechanismus von Pyenv und Virtualenv
Vor- und Nachbearbeitung von Pytest
Globalisierung von Klasseninstanzvariablen
Kombination von anyenv und direnv
Erklärung und Implementierung von SocialFoceModel
Differenzierung der Sortierung und Verallgemeinerung der Sortierung
Berechnung der Ähnlichkeit durch MinHash
Python-Klassen- und Instanzvariablen
Koexistenz von Pyenv und Autojump
Verwendung und Integration von "Shodan"
Das Problem der Lügner und der Ehrlichkeit
Über die Kostenberechnung von MeCab
Auftreten und Auflösung von tensorflow.python.framework.errors_impl.FailedPreconditionError
Klassenvererbung und Superfunktion
Vergleich von Apex und Lamvery
Quellinstallation und Installation von Python
Einführung und Tipps von mlflow.Tracking
Schätzung / Vorhersage des verallgemeinerten linearen Modells bei Lasso und Ridge