# CP Python: Séance 12 ## Ressources Séance 11 - [Guide de Séance 11](https://hackmd.io/@Tb5Z2PdeRLSnkxJEsjcLXg/SkyQH5eTv) - [Jamboard QBF Séance 10](https://jamboard.google.com/d/1lY4jA4bNPbzoGJGJNgdHKA32LNuF_DH6wAWy3tRz6F0/edit?usp=sharing) - [REPL fin de Séance 10](https://repl.it/join/sqscldet-guillaumegst) - [REPL Séance 11](https://repl.it/join/rjjsjcrw-guillaumegst) ## A préparer ### Théorie - [x] Tout ce qui a été mentionné dans le [Guide de Séance 11](https://hackmd.io/@Tb5Z2PdeRLSnkxJEsjcLXg/SkyQH5eTv) (si vous avez du retard) - [x] Polymorphisme: Tout la matière lié à ce jeu de [slides](https://drive.google.com/file/d/12QrQVju94xsM9RK0LbF9GG3Ub1EJnyVO/view?usp=sharing). Complétez si nécessaire votre étude par la lecture des sections correspondantes du syllabus. > EDIT: Voir sytnhèse ici https://hackmd.io/@Tb5Z2PdeRLSnkxJEsjcLXg/SJw_mIUav ### Exercices Toute la [phase de démarrage liée à la mission 10](https://syllabus-interactif.info.ucl.ac.be/syllabus/info1-exercises/PART_III/MISSION_10/preparation) SAUF les questions liées aux tests unitaires. C'est-à-dire: - [x] Session 10: Refaites tous les QCM (utilisez Inginious pour avoir un feedback instantané) > EDIT: Correction ici => https://docdro.id/ouvHnrw - [x] Question 3: Amazon dispatch center. A cet effet, utilisez ce [nouveau REPL](https://repl.it/join/ntqjjxli-guillaumegst) - [ ] Ensuite, réfléchir déjà à la résolution de la QBF décrite ci-dessous. Nous la résoudrons ensemble. --- #### *__QBF__) Dans le contexte de gestion d’une bibliothèque de média, chacun des objets de cette bibliothèque estune instance de la classe `Item` ci-dessous.* ```python class Item : def __init__(self,author,title,serial): """ Méthode d'initialisation. @pre author et title sont des valeurs de type String serial est un entier > 0 @post Une instance de la classe est créée, et représente un objet ayant comme auteur author, comme titre title et comme numéro de série serial """ self.__author = author self.__title = title self.__serial = serial def __str__(self): """ Méthode de conversion en string. @pre - @post le string retourné contient une représentation de cet objet sous la forme: [num série] Auteur, Titre """ ### À compléter ### ``` 1. Compléter la méthode `__str__`de la classe Item. 2. Écrire entièrement la classe CD en utilisant l'héritage. - Un CD est lui même un item de la bibliothèque avec une information supplémentaire : la durée de l’album en secondes (un entier suffira). On doit pouvoir créer un nouvel objet CD par exemple avec l’instruction : `cd = CD("Radiohead","The Bends",2917)` - Les trois paramètres passés au constructeur `CD()` sont l’auteur, le titre et une durée en secondes. - On doit pouvoir obtenir une représentation textuelle d’un CD grâce à la méthode `__str__`, qui renvoie par exemple : `[100000] Radiohead, The Bends (2917 s)` - Remarquez que chaque `Item` possède un numéro de série `serial` propre à l’objet (pour pouvoir différencier plusieurs exemplaires d’un même livre par exemple). - Ce numéro de série est fourni en paramètre du constructeur pour un `Item` mais doit être généré automatiquement et commencer à $100000$ pour un CD.