Écrire une classe à partir de zéro
Vous êtes une ou un développeur Python qui crée un module de visualisation. Pour chaque élément d'une visualisation, vous voulez pouvoir connaître sa position, sa distance par rapport aux autres éléments et appliquer facilement un miroir horizontal ou vertical.
L'élément le plus simple d'une visualisation est un seul point. Dans cet exercice, vous allez écrire, à partir de zéro, une classe représentant un point dans un plan.
Cette activité fait partie du cours
Programmation orientée objet en Python
Instructions de l’exercice
Définissez la classe Point qui comporte :
- Deux attributs,
xety— les coordonnées du point dans le plan; - Un constructeur qui accepte deux arguments,
xety, et qui initialise les attributs correspondants. Ces arguments doivent avoir la valeur par défaut0.0; - Une méthode
distance_to_origin()qui retourne la distance entre le point et l'origine. La formule est \(\sqrt{x^2 + y^2}\). - Une méthode
reflect()qui effectue la réflexion du point par rapport à l'axe des x ou des y :- accepte un argument
axis, - si
axis="x", elle affecte à l'attributy(ce n'est pas une coquille !) la valeur négative dey, - si
axis="y", elle affecte à l'attributxla valeur négative dex, - pour toute autre valeur de
axis, elle affiche un message d'erreur.
- accepte un argument
Note : vous pouvez utiliser la fonction sqrt() soit du module numpy, soit du module math, mais dans tous les cas, n'oubliez pas de l'importer avant de commencer la définition de la classe !
Pour vérifier votre travail, vous devriez pouvoir 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 obtenir la sortie
(-3.0,0.0)
5.0
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Write the class Point as outlined in the instructions