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()).