Chapitre 17 : Avoir la classe avec les objets

         1 – Introduction

    Une classe permet de définir des objets qui sont des représentants (des instances) de cette classe. Les objets peuvent posséder des attributs (variables associées aux objets) et des méthodes ( fonctions associées aux objets).

Exemple de la classe Rectangle :

Code python

class Rectangle:
« ceci est la classe Rectangle »
# initialisation d’un objet
# définition des attributs avec des valeurs par défaut
def __init__(self, long = 0.0, larg = 0.0, coul = « blanc »):
self.longueur = long
self.largeur = larg
self.couleur = coul
# definition de la méthode qui calcule la surface
def calculSurface(self):
print « surface = %.2f m2 » %(self.longueur * self.largeur)
# definition de la méthode qui transforme un rectangle en carré
def changeCarre(self, cote):
self.longueur = cote
self.largeur = cote
Ici, longueur, largeur et couleur sont des attributs alors que calculPerimetre(), calculSurface() et changeCarre() sont des méthodes. Tous les attributs et toutes les méthodes se réfèrent toujours à self qui désigne l’objet lui même. Attention, les méthodes prennent toujours au moins self comme argument.

Exemples d’utilisation de la classe Rectangle :

Code python

# création d’un objet Rectangle avec les paramètres par défaut
rect1 = Rectangle()
print rect1.longueur, rect1.largeur, rect1.couleur
# sans surprise :
rect1.calculSurface()
# on change le rectangle en carré
rect1.changeCarre(30)
rect1.calculSurface()
# création d’un objet Rectangle avec des paramètres imposés
rect2 = Rectangle(2, 3, « rouge »)
rect2.calculSurface()

         2 – Exercices

    Conseil : pour ces exercices, écrivez des scripts dans des fichiers, puis exécutez-les dans un shell.

Entraînez-vous avec la classe Rectangle. Créez la méthode calculPerimetre() qui calcule le périmère d’un objet rectangle.
Créez une nouvelle classe Atome avec les attributs x, y, z (qui contiennent les coordonnées atomique) et la méthode calculDistance(). Testez cette classe sur plusieurs exemples.
Améliorez la classe Atome avec de nouveaux attributs (par ex. : masse, charge, etc.) et de nouvelles méthodes (par ex. : calculCentreMasse(), calculRayonGyration()).