Leçon 6 / 9 — Chapitre 2: POO : héritage et polymorphisme
isinstance() : vérifier le type d'un objet
isinstance(objet, Classe) renvoie True si objet est une instance de Classe — ou d'une de ses sous-classes, un point à ne pas confondre avec une simple comparaison de type.
class Animal:
pass
class Chien(Animal):
pass
rex = Chien()
print(isinstance(rex, Chien))
print(isinstance(rex, Animal))
print(isinstance(rex, str))
Ce code affiche True, True, puis False. rex est bien une instance de Chien (le premier test), mais aussi d'Animal (le second test) car Chien hérite d'Animal — isinstance prend en compte toute la hiérarchie, pas seulement la classe exacte de création. str n'a évidemment aucun lien avec Chien, d'où False.
isinstance() est utile pour adapter un traitement selon le type réel d'un objet quand le polymorphisme seul ne suffit pas, par exemple avant d'appeler une méthode qui n'existe que sur certaines sous-classes :
if isinstance(rex, Chien):
print("C'est bien un chien")
À vous de jouer : avec une classe parente et une sous-classe, testez isinstance() d'un objet de la sous-classe contre les deux classes, et vérifiez que les deux tests renvoient True.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès