# 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.