= Exercices sur les classes (basique) == Exercice 1 (Thème *bibliothèque*) - Déclarez une classe `Library` - Avec un attribut `name` (défaut `None`) - Avec un attribut `address` (défaut `None`) - Instanciez deux nouveaux objets de cette classe (différenciez noms de variables et de classes) - Affichez la valeur de l'attribut `name` de l'un des objets == Exercice 2 - Déclarez une classe `Book` - Avec des attributs `title` (`None`), `author` (`None`), `year` (`None`) - Instanciez un nouvel objet de cette classe - Modifiez les attributs `title` et `author` - Affichez la valeur de ces attributs == Exercice 3 (méthodes) - Réutilisez la classe `Library` - Ajoutez-y un attribut `is_open` (`True`) - Ajoutez une méthode `open(value=True)` qui change l'attribut `is_open` - Ajoutez une méthode `show_status()` qui affiche l'état de la bibliothèque : * `"Bibliothèque :"` * `"État : Ouverte"` (ou `"fermée"`) == Exercice 4 (Redéfinition de l'instanciation) - Réutilisez la classe `Library` - Définissez la méthode `_ _ init _ _()`, qui accepte des arguments `name` et `address` : * `name` est un argument à valeur par défaut, à `None` * `address` possède une valeur par défaut à `None` * La méthode utilise ces arguments pour initialiser les attributs de `self`. - Instanciez deux nouveaux objets de cette classe - Exécutez la méthode `show_status()` sur ces deux objets == Exercice 5 (Héritage) - Définissez une classe `ComicBook` héritant de `Book` - Cette classe contient en plus un attribut `is_color` (`True`) - Instanciez un objet de chacune des deux classes `Book` et `ComicBook` - Vérifiez que l'objet de type `ComicBook` est bien un `Book` : * en utilisant la fonction `isinstance(object, class)` == Exercice 6 (Polymorphisme) - Ajoutez un attribut `is_published` sur la classe `Book` - Ajoutez une méthode `publish(value)` sur `Book`, qui change l'attribut `is_published` - Redéfinissez la méthode `publish(value)` sur `ComicBook`, qui fait la même chose que dans `Book` (fonction `super()`), puis affiche `"Comic book mis à jour"` - Testez les méthodes sur deux objets, de type `Book` et `ComicBook`. == Exercice B1 (staticmethod) - Écrivez une méthode statique dont la syntaxe est correcte.