Exercices POO isinstance et hierarchie
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

isinstance et hierarchie

La fonction isinstance(objet, classe) te permet de vérifier si un objet est une instance d'une classe ou d'une de ses sous-classes.

C'est different de type() qui vérifie le type exact :

class Animal:
pass

class Chien(Animal):
pass

rex = Chien()
isinstance(rex, Chien) renvoie True
isinstance(rex, Animal) renvoie True (Chien herite de Animal)
type(rex) == Animal renvoie False (c'est un Chien, pas un Animal)

isinstance est plus souple car il respecte l'héritage. C'est la méthode recommandee pour tester le type d'un objet.

Reprends la hierarchie Forme/Carre/Triangle de l'exercice précédent. Écris une fonction compter_par_type(formes) qui prend une liste de formes et renvoie un dictionnaire avec le nombre de carres et de triangles.

Exemple :
formes = [Carre(2), Triangle(3, 4), Carre(5), Triangle(1, 2)]
compter_par_type(formes) renvoie {'carres': 2, 'triangles': 2}

Tests (3/4)

Mix
formes = [Carre(2), Triangle(3, 4), Carre(5), Triangle(1, 2)]
assert compter_par_type(formes) == {'carres': 2, 'triangles': 2}
Que des carres
formes = [Carre(1), Carre(2)]
assert compter_par_type(formes) == {'carres': 2, 'triangles': 0}
Liste vide
assert compter_par_type([]) == {'carres': 0, 'triangles': 0}

+ 0 tests cachés

Indices (3 disponibles)

solution.py