Bonjour,
je reprends un cours sur Python et les classes.
Parmi les différentes méthodes que comporte une classe, on a souvent tendance à distinguer :
- les constructeurs ;
- les accesseurs qui fournissent des informations relatives à l’état d’un objet, c’est-à-dire aux valeurs de certains de ses attributs (généralement privés) sans les modifier, c'est-à-dire qu'elle permettent d'accéder à certaines valeurs d'attributs : get_XXXX()
- les mutateurs qui modifient l’état d’un objet, donc les valeurs de certains de ses attributs : set_XXXX()
Les mutateurs sont donc des méthodes qui permettent de modifier les attributs d'un objet après sa création.
Dans ton exemple, on crée des points :
Code : Tout sélectionner
pt = Point(3, 4) # test création point quelconque abscisse 3 et ordonnée 4
print(pt) # on l'affiche avec la méthode de classe print qui va écrire coordonnee horizontale = 3 coordonnees verticale = 4
print(pt.getx(), pt.gety()) # test accesseurs on récupère les coordonnées : on a l'affichage 3 4
pt.setx(34) # test mutateurs on modifie les valeurs des coordoonnées de pt : l'abscisse passe à 34
pt.sety(45) # l'ordonnée passe à 45
print(pt) # on l'affiche avec la méthode de classe print qui va écrire coordonnee horizontale = 34 coordonnees verticale = 45
Pour l'instruction deplace, c'est seulement un déplacement du point : on lui applique le déplacement de (10,100), il se retrouvera donc aux coordonnées (34+10,45+100)=(44,145)
Pour le calcul de la longueur, tu as créé une méthode longueur qui calcule la longueur d'un segment [AB] en partant du point A avec la formule de la distance dans un repère orthonormé \(\sqrt{(x_B-x_A)^2+(y_B-y_A)^2}\).
Cette méthode est construite de telle sorte que l'on peut l'appliquer à un point avec la notation pointée : A.longueur(B) qui va calculer la distance entre A et B.
Si on veut le périmètre, on fait la somme des trois distances d'où le
Code : Tout sélectionner
A.longueur_segment(B) + B.longueur_segment(C) + C.longueur_segment(A)
qui calcule \(AB+BC+CA\).
Est-ce plus clair ?