isinstance()
Vérifie si un objet est d’un type donné, ou d’un sous-type de celui-ci.
- Renvoie
TrueouFalse.
Exemple
#def describe(value):
if isinstance(value, bool):
return "valeur booléenne"
if isinstance(value, (int, float)):
return "nombre"
if isinstance(value, str):
return "texte"
return "autre chose"
for item in [7, 2.5, "HTML", True, None]:
print(describe(item))Définition et utilisation
#La fonction isinstance(object, classinfo) renvoie True si l’objet est une instance du type donné, ou d’une classe qui en hérite. C’est la façon recommandée de vérifier un type dans une condition.
Comme second argument, vous pouvez donner un tuple de types : isinstance(x, (int, float)) vérifie si la valeur est l’un de ces types numériques. Depuis Python 3.10, l’écriture avec une union fonctionne aussi : int | float.
Rappelez-vous que bool hérite de int, donc isinstance(True, int) renvoie True. Si vous voulez exclure les valeurs booléennes, vérifiez-les séparément.
Syntaxe
#isinstance(object, classinfo)Paramètres
#object
n’importe quelle valeur
L’objet vérifié.classinfo
un type, un tuple de types ou une union
Le type, ou plusieurs types, à vérifier.
Bonnes pratiques
#- Vérifiez les valeurs booléennes avant les nombres, car
Truepasse aussi le testisinstance(x, int). - Plutôt que de vérifier le type, il est souvent préférable d’essayer l’opération et de gérer l’exception.
Entrées associées
#Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.