Ho una classe vettoriale e ho definito il metodo __mul__
per moltiplicare un vettore per un numero.Definire alias del metodo in Python?
Ecco il metodo __mul__
:
def __mul__(self, other):
x = self.x * other
y = self.y * other
new = Vector()
new.set_pos((x, y))
return new
mio problema è che non so quale è quale tra il numero e il vettore. Se self è il numero, self.x genera un errore. (Sto forse sbagliare su questo punto:? È "altro" sempre un numero)
Così ho trovato qui: Python: multiplication override che avrei potuto fare:
__rmul__ = __mul__
ma come posso farlo in un definizione di classe?
Qualcosa di simile:
def __rmul__ = __mul__
C'è un modo per sapere quale sarà chiamato? –
'__mul__' prima, quindi' __rmul__' se fallisce. – katrielalex
meglio: o "dì a b di moltiplicare a se stesso (b)". L'operatore di moltiplicazione non deve essere commutativo. – glglgl