Surcharge d'opérateur
G@ndjalf
Messages postés
1
Statut
Membre
-
dsy73 Messages postés 9003 Date d'inscription Statut Contributeur Dernière intervention -
dsy73 Messages postés 9003 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis actuellement entrain de coder une classe de vecteurs et je rencontre un problème. J'aimerais surcharger l'opérateur * afin qu'il me permette à la fois un produit vectoriel et une multiplication par un scalaire. Mais mon code ne marche pas et je ne trouve pas l'erreur :
def __mul__(v,self):
if isinstance(v, vect3):
return vect3([self[1]*v[2] - self[2]*v[1], self[2]*v[0] - self[0]*v[2], self[0]*v[1] - self[1]*v[0]])
else:
return vect3([v*self[0], v*self[1], v*self[2]])
Lorsque je veux calculer 3*v où v = vect3([1,2,3]) par exemple j'obtiens l'erreur : "TypeError: unsupported operand type(s) for *: 'int' and 'vect3'"
Et pour v*3 : "TypeError: 'int' object has no attribute '__getitem__'" ce qui parait normal.
Toute aide serait la bienvenue :) Merci.
Je suis actuellement entrain de coder une classe de vecteurs et je rencontre un problème. J'aimerais surcharger l'opérateur * afin qu'il me permette à la fois un produit vectoriel et une multiplication par un scalaire. Mais mon code ne marche pas et je ne trouve pas l'erreur :
def __mul__(v,self):
if isinstance(v, vect3):
return vect3([self[1]*v[2] - self[2]*v[1], self[2]*v[0] - self[0]*v[2], self[0]*v[1] - self[1]*v[0]])
else:
return vect3([v*self[0], v*self[1], v*self[2]])
Lorsque je veux calculer 3*v où v = vect3([1,2,3]) par exemple j'obtiens l'erreur : "TypeError: unsupported operand type(s) for *: 'int' and 'vect3'"
Et pour v*3 : "TypeError: 'int' object has no attribute '__getitem__'" ce qui parait normal.
Toute aide serait la bienvenue :) Merci.
A voir également:
- 0785 quel opérateur
- 0668 quel opérateur ✓ - <a href="https://forums.commentcamarche.net/forum/operateurs-reseaux-mobiles-205">Forum Opérateurs & Réseaux mobiles</a>
- 0496 quel opérateur ✓ - <a href="https://forums.commentcamarche.net/forum/mobile-26">Forum Mobile</a>
- 0466 quel opérateur - <a href="https://forums.commentcamarche.net/forum/mobile-26">Forum Mobile</a>
- Connaitre l'opérateur d'un portable inconnu ? ✓ - <a href="https://forums.commentcamarche.net/forum/mobile-26">Forum Mobile</a>
- 0493 quel operateur - <a href="https://forums.commentcamarche.net/forum/mobile-26">Forum Mobile</a>