Nov 23, 2024

Wiki

Python

Aide

edit SideBar

Search

Les Methodes

Définition d'une méthode

Pour définir une méthode dans une classe, il suffit d'utiliser def et self (c'est ainsi que l’on appelle l'objet instancié : on doit y faire appel en premier paramètre de toutes les méthodes de la classe), comme l'illustre l'exemple suivant :

  >>> class Voiture :
  ...     couleur = "Rouge"
  ...     etat = "arret"
  ...     def demarrer(self) :
  ...         self.etat = "marche"
  ...     def arreter(self) :
  ...         self.etat = "arret"

Une méthode a donc forcément au moins un paramètre (self : l’objet instancié).

Les méthodes spéciales

Les méthodes spéciales déterminent un fonctionnement spécifique pour une classe lorsqu’elle est utilisée dans certaines opérations :

__init__()
Constructeur de la classe. Voir ci-dessous.
__del__()
Destructeur de la classe. Voir ci-dessous.
__str__()
Méthode appelée par la primitive str(). Elle doit renvoyer une représentation d’un objet, sous forme d’une chaîne de caractères...
  >>> class A :
  ...     def __str__(self) :
  ...         return "Je suis un objet de type A"
  ...
  >>> a = A()
  >>> str(a)
  Je suis un objet de type A
__getitem__()
Si une classe définit une telle méthode, et si x est une instance de cette classe, alors x[i] sera accepté, et retournera x.__getitem__(i).
  >>> class B:
  ...     def __getitem__(self, i):
  ...         return i**2
  ... 
  >>> b = B()
  >>> b[5]
  25

Constructeur

Généralités

Lorsqu'une classe est instanciée, la méthode spéciale __init__() est invoquée, avec en premier paramètre l’objet nouvellement instancié :

  >>> class Voiture :
  ...     def __init__(self, type) :
  ...     self.type = type
  ...

Pour instancier un objet, on écrit donc :

  >>> ma_voiture = Voiture('Ferrari')

Valeurs par défaut des arguments du constructeur

Considérons l'exemple suivant :

  >>> class Time:
  >>>     def __init__(self, hh = 0, mm = 0, ss = 0):
  ...         self.heure = hh
  ...         self.minute = mm
  ...         self.seconde = ss
  ... 
  >>> rentree = Time(10, 30)

Alors :

  • l'attribut heure sera égal à 10,
  • l'attribut minute à 30,
  • l'attribut seconde aura sa valeur par défaut, à savoir 0.

Destructeur

On peut définir un destructeur grâce à la méthode spéciale __del__(). Cette méthode sera appelée par le garbage collector.

  >>> class A :
  ...     def __del__(self) :
  ...         print "destruction"

Pour l'utiliser :

  >>> a = A()
  >>> del a

Le code contenu dans un destructeur d’une classe A doit explicitement faire appel aux destructeurs des classes dont dérive A.

NB. En général, on peut se passer de définir les destructeurs, et laisser cette tâche à Python.

Page Actions

Recent Changes

Group & Page

Back Links