Bojnour,
Voila mon problème
j'ai crée la classe Vector comme donné dans la Faq du site
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# -*- coding: cp1252 -*-
 
import math
 
class Vector:
    def __init__(self, x=0, y=0):
        self.x=x
        self.y=y
    def __eq__(self, vB):
        return (self.x==vB.x) and (self.y==vB.y)    ## test l'égalité de 2 vecteurs        
    def __add__(self, vB):
        return Vector(self.x+vB.x,self.y+vB.y)  ## retourne le vecteur somme
    def __sub__(self, vB):
        return Vector(self.x-vB.x,self.y-vB.y) ## retourne le vecteur différence
    def __mul__(self, c):
        if isinstance(c,Vector):
            return  self.x*c.x+self.y*c.y ## retourne le produit scalaire
        else:
            return Vector(c*self.x,c*self.y) ## retourne le vecteur multiplé par un scalaire
    def __div__(self, c):
        return Vector(self.x/c, self.y/c) ## retourne le vecteur ayant subi une division scalaire
    def __abs__(self):
        return math.hypot(self.x, self.y) ## retourne la norme2 du vecteur
    def __str__(self):
        return '('+str(self.x)+','+str(self.y)+')' ## retourne la réprésentation du vecteur sous forme d'une chaîne
Apres je fait:
>> a = Vector(2,3)
>>b = Vector(3,4)
>>c = a + b

Tout passe sans probleme
Par contre je voudrais faire:
>>a = Vector(2,3)
>>a = 2
>>b = Vector(3,4)
>>c = a + b
et la ca marche pas ce qui est normal car la methode __add__ elle n'est pas defini pour faire Vector + float
Mais ma question est sur les 2 premieres lignes, quelle methode je dois surcharger pour quand je fais a = 2 il me change pas le type de a et le garde en vector et en fait me ferais un a = Vector(2,2)

Merci d'avance de vos reponses
Jonathan