Comment créer une classe

2022-10-14 03:22:42  vendredi  2596 mots  

Tout le matériau présenté depuis le début de ce chapitre a pour but de vous aider à créer vos propres classes. C’est ce que vous allez faire ici afin d’obtenir une classe que vous pourrez placer dans un module externe, et réutiliser éventuellement dans une application.

Le Listing montre le code dont vous avez besoin pour créer la classe. Vous le retrouverez également dans le fichier téléchargeable MyClass.py.

Listing : Créer une classe externe.

class MyClass:
   def __init__(self, Name="Samuel", Age=32):
      self.Name = Name
      self.Age = Age

   def GetName(self):
      return self.Name

   def SetName(self, Name):
      self.Name = Name

   def GetAge(self):
      return self.Age

   def SetAge(self, Age):
      self.Age = Age

   def __str__(self):
      return "{0} est âgé(e) de {1} ans.".format(self.Name,
                                       self.Age)

Dans ce cas, la classe commence par créer un objet avec deux variables d’instance : Name et Age. Pour le cas où l’utilisateur ne fournirait pas ces informations, ces variables sont initialisées avec les valeurs Samuel et 32.

Cet exemple fournit une nouvelle fonctionnalité des classes, ce que la plupart des développeurs appellent un accesseur. Pour l’essentiel, celui-ci fournit un accès à la valeur sous-jacente. On peut également trouver des variations autour de ce nom. Il y a d’abord les accesseurs proprement dits, ou encore getters. Ainsi, GetName et GetAge sont des accesseurs/getters. Ils offrent un accès en lecture seule à la valeur sous-jacente. Les méthodes SetName et SetAge sont des mutateurs, ou encore setters. Elles fournissent un accès en écriture seule à la valeur sous-jacente. Utiliser une combinaison de méthodes comme celle-ci vous permet de vérifier que les entrées possèdent le type voulu, ou encore que l’appelant a l’autorisation de voir l’information.

Comme pour toute autre classe que vous créez, vous avez besoin de définir la méthode __str__() si vous voulez que l’utilisateur puisse afficher l’objet. Ici, la classe fournit une sortie formatée qui liste les deux variables d’instance.

Commentaire