---
# System prepended metadata

title: 'CP Python: Séance 12'

---

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