Rédiger une classe à partir de zéro
Vous êtes un développeur Python et vous écrivez un logiciel de visualisation. Pour tout élément d'une visualisation, vous devez être en mesure de déterminer la position de l'élément, la distance qui le sépare des autres éléments, et de mettre en œuvre facilement un retournement horizontal ou vertical.
L'élément le plus fondamental de toute visualisation est un point unique. Dans cet exercice, vous écrirez une classe pour un point sur un plan en partant de zéro.
Cet exercice fait partie du cours
Programmation orientée objet en Python
Instructions d’exercice
Définissez la classe Point
qui a :
Deux attributs,
x
ety
- les coordonnées du point sur le plan ;Un constructeur qui accepte deux arguments,
x
ety
, qui initialisent les attributs correspondants. La valeur par défaut de ces arguments est0.0
;Une méthode
distance_to_origin()
qui renvoie la distance du point à l'origine. La formule pour cela est \(\sqrt{x^2 + y^2}\).Une méthode
reflect()
, qui reflète le point par rapport à l'axe des x ou des y :accepte un argument
axis
,si
axis="x"
, il définit l'attributy
(ce n'est pas une faute de frappe !) à la valeur négative de l'attributy
,si
axis="y"
, il attribue à l'attributx
la valeur négative de l'attributx
,pour toute autre valeur de
axis
, affiche un message d'erreur.
Note : Vous pouvez choisir d'utiliser la fonction sqrt()
du paquetage numpy
ou math
, mais quel que soit le paquetage choisi, n' oubliez pas de l'importer avant de commencer la définition de la classe !
Pour vérifier votre travail, vous devez être en mesure d'exécuter le code suivant sans erreur :
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
et renvoie le résultat
(-3.0,0.0)
5.0
Exercice interactif pratique
Essayez-vous à cet exercice en complétant cet exemple de code.
# Write the class Point as outlined in the instructions