Ich habe eine Vektorklasse und ich definierte die __mul__
Methode, um einen Vektor mit einer Zahl zu multiplizieren. HierDefinieren Sie Methoden-Aliase in Python?
ist die __mul__
Methode:
def __mul__(self, other):
x = self.x * other
y = self.y * other
new = Vector()
new.set_pos((x, y))
return new
Mein Problem ist, dass ich weiß nicht, welche die zwischen der Zahl und dem Vektor ist. Wenn self die Nummer ist, löst self.x einen Fehler aus. (Ich bin vielleicht in diesem Punkt zu verkennen: Ist „andere“ immer eine Zahl)
So fand ich hier: Python: multiplication override , dass ich tun konnte:
__rmul__ = __mul__
aber wie kann ich tun, dass in einem Klassendefinition?
Etwas wie:
def __rmul__ = __mul__
Gibt es eine Möglichkeit zu wissen, welcher man genannt wird? –
'__mul__' zuerst, dann' __rulul__' wenn das fehlschlägt. – katrielalex
besser: oder "sag b, um ein selbst zu multiplizieren (b)". Der Multiplikationsoperator muss nicht kommutativ sein. – glglgl