Il en est des fonctions comme des variables. Dans le cadre d'une classe, elles deviennent des "méthodes". Cette différence de terme peut sembler capricieuse, elle permet cependant de toujours bien savoir à quel niveau on parle.
Les méthodes vont permettre de définir des regroupements de fonctions propres à notre contexte de manière à mieux les exploiter, en respectant systématiquement ce contexte.
La définition d'une fonction interne à une classe est très simple puisqu'elle ne contient aucune différence avec la façon standard de la définir : on utilise le mot clé def suivi du nom de la fonction, un :, puis à la ligne le bloc d'instruction indenté.
class MaClasse: def affiche(self): essai="ok" return essai objet = MaClasse() print objet.affiche() > ok
Init est une méthode particulière qui est lancée automatiquement lors de la déclaration d'une instance. On l'appelle "constructeur" parce qu'elle aide à poser les bases de toute l'instance. On y déclare en général les principaux attributs et on peut éventuellement y commencer du traitement par appel de certaines méthodes.
Dans l'exemple qui précède, l'utilisation du constructeur pourrait conduire à un programme comme celui-ci :
class MaClasse: def __init__(self): self.essai="ok" def affiche(self): return self.essai objet = MaClasse() print objet.affiche() > ok
Le constructeur contient en général au minimal l'affectation de base des premières variables les plus importantes du programme de manière à s'assurer qu'elles sont bien déclarées et seront parfaitement partagées par la suite au sein des différentes méthodes.
Le mot-clé self permet quant à lui de spécifier que l'action s'effectue bien au niveau de l'instance elle-même. Nous aborderons plus abondamment ce sujet en parlant ultérieurement de leur opposé, les attributs de classe.
Enfin, si __init__ est un constructeur, __del__ est un destructeur. Plus rarement utilisé en python puisque l'interpréteur prend en charge la destruction des objets lorsqu'ils deviennent inutilisés, le destructeur permet cependant de mieux contrôler les événements et de déclencher éventuellement des actions à la destruction d'une instance, comme renvoyer un message, par exemple.
class MaClasse: def __init__(self): self.essai="ok" def affiche(self): return self.essai def __del__(self): print "objet détruit" objet = MaClasse() print objet.affiche() > ok objet.__del__() > objet détruit
Ici, nous forçons la destruction de l'objet pour l'exemple, mais cette action est bien sûr réalisable dans tout projet, même si elle n'est pas nécessaire.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.