PaliSkill
Python avancé

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 Classeou 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'Animalisinstance 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