Le constructeur : __init__ et selfChapitre 4/8
Trop de lignes, trop d'oublis
Au chapitre 3, chaque personnage demandait une ligne par attribut. Avec trois attributs et dix personnages, ça fait trente lignes, et il suffit d'en oublier une pour avoir une AttributeError plus loin.
arthur = Personnage()
arthur.nom = "Arthur"
arthur.pv = 100
arthur.force = 30
ogre = Personnage()
ogre.nom = "Ogre"
ogre.pv = 150
# oups : on a oublié ogre.forceOn aimerait écrire une seule ligne par personnage, en donnant ses valeurs au moment de la fabrication, et être sûr que tous les personnages ont exactement les mêmes attributs :
arthur = Personnage("Arthur", 100, 30)
ogre = Personnage("Ogre", 150, 40)C'est exactement le rôle du constructeur. Retour à la fiche d'inscription : c'est le moment où on remplit les cases, juste après avoir imprimé la fiche vierge.
Programme complet du cours de programmation orientée objet (8 chapitres, gratuit)
- 1. Pourquoi des objets ? : Le problème qu'on cherche à résoudre : des données éparpillées dans des variables et des dictionnaires, et l'idée de regrouper l'état et les actions dans un seul objet.
- 2. Classe et objet : Le plan et ce qu'on fabrique avec : écrire une classe avec class, instancier des objets, et découvrir que int, str et list sont des classes.
- 3. Les attributs : l'état d'un objet : Donner des données à un objet avec le point, les lire, les modifier, et comprendre ce qui se passe quand deux variables désignent le même objet.
- 4. Le constructeur : __init__ et self : Remplir un objet dès sa fabrication : la méthode __init__, le paramètre self, les arguments donnés à la classe et les attributs à valeur fixe.
- 5. Les méthodes : les actions d'un objet : Écrire les actions d'un objet dans sa classe : méthodes qui affichent, qui modifient l'état, qui renvoient une valeur, et ce que fait vraiment p.saluer().
- 6. Des objets qui travaillent ensemble : Un objet en paramètre d'une méthode, un attribut qui est une liste d'objets (le panier et ses produits), et une première structure : la pile.
- 7. L'encapsulation : protéger l'état : Empêcher qu'on mette un solde à -1000 : vérifications dans les méthodes, attributs privés avec _ et __, accesseurs et mutateurs, interface et implémentation.
- 8. La totale : une bibliothèque de prêt : Un mini-projet guidé qui utilise tout le cours : classes Livre et Bibliotheque, attributs privés, objets qui en contiennent d'autres, et un guichet qui lit au clavier.