CommencezCommencez gratuitement

É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

Voir le cours

Instructions de l’exercice

Définissez la classe Point qui comporte :

  • Deux attributs, x et y — les coordonnées du point dans le plan;
  • Un constructeur qui accepte deux arguments, x et y, et qui initialise les attributs correspondants. Ces arguments doivent avoir la valeur par défaut 0.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'attribut y (ce n'est pas une coquille !) la valeur négative de y,
    • si axis="y", elle affecte à l'attribut x la valeur négative de x,
    • pour toute autre valeur de axis, elle affiche un message d'erreur. Reflection of a point with respect to y and x axes

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
Modifier et exécuter le code