Objectifs
- Être capable d'utiliser adéquatement la fonction
isinstance()en python.
- Être capable d'utiliser adéquatement la fonction
Introduction
- Python est un langage à typage dynamique. Une variable peut se voir attribuer plusieurs valeurs pendant la durée de vie du code.
- Il est donc nécessaire de garder une trace du type de données que votre variable contient à un certain stade du code.
- C'est là que les fonctions intégrées comme
type()etisinstance()entrent en jeu. - Dans ce tutoriel, nous allons passer en revue la fonction
isinstance()de Python. - Un utilisateur peut rencontrer certaines situations où il doit déterminer si un objet est une instance d'une classe spécifique, principalement en héritage . Python fournit une méthode intégrée pour vérifier la même chose, nommée
isinstance().

Définition
- Comme son nom l'indique, la fonction
isinstance()est une fonction intégrée qui vérifie si un objet est une instance d'une classe particulière ou non. - La fonction
isinstance()est une fonction intégrée qui renvoie un booléen indiquant si un objet est une instance ou une sous-classe d'un autre objet. - Les deux objets doivent être fournis en tant qu'arguments de la fonction.
- Comme son nom l'indique, la fonction
Syntaxe
Paramètres:
- Cette fonction prend deux paramètres en argument.
objet
- Est un champ obligatoire. Cela devrait être une instance d'objet. Exemple: Tout nom de variable que vous avez défini comme int, mynum, etc.
classinfo
- Est un champ obligatoire.
- Une classe, un type ou un tuple de classes , de types ou d'autres tuples
- Cette fonction prend deux paramètres en argument.
Valeurs de retour:
- La valeur de retour est "True" si
classinfoest un objet de type et que l'objetest un objet de ce type ou de l'une de ses sous-classes. - La valeur de retour est "False" si l'objet n'est pas une instance de classe ou un objet du type donné.
- La valeur de retour est "True" si
isinstance(object, classinfo)Cas d'utilisation
Utiliser
isinstance()avec des classes natives en Python- Dans les deux exemples suivants nous utilisons la fonction
isinstance()pour les classes natives en python comme int , float , str , list , dict et tuple.
Exemple:01print(isinstance(5,float)) >>>False print(isinstance(5.12,float)) >>>True print(isinstance(5,int)) >>>True print(isinstance('abc', str)) >>>True print(isinstance([1,2,3], list)) >>>True print(isinstance((1,2,3), tuple)) >>>True print(isinstance({1:1,2:2,3:3}, dict)) >>>TrueExemple:02i=10 f=55.55 s="AskPython" l=[1,2,3,4,5] d={0:"n", 1:"y"} t=(1,2,3,4) print("isinstance(i,int)=",isinstance(i,int)) >>>isinstance(i,int)=True print("isinstance(f,int)=",isinstance(f,float)) >>>isinstance(f,int)=True print("isinstance(s,int)=",isinstance(s,str)) >>>isinstance(s,int)=True print("isinstance(l,int)=",isinstance(l,list)) >>>isinstance(l,int)=True print("isinstance(d,int)=",isinstance(d,dict)) >>>isinstance(d,int)=True print("isinstance(t,int)=",isinstance(t,tuple)) >>>isinstance(t,int)=True- Dans les deux exemples suivants nous utilisons la fonction
Utiliser
isinstance()avec des classes définies par l'utilisateurCodeclass classe01: dd=10 mm=2 yyyy=2002 class classe02: hr=12 min=56 sec=34 #création d'instances x=classe01() y=classe02() #Vérifier si x est une instance de la classe classe01 print("x est une instance de classe01?",isinstance(x,classe01)) #Vérifier si x est une instance de la classe classe02 print("x est une instance de classe02?",isinstance(x,classe02)) #Vérifier si y est une instance de la classe classe02 print("y est une instance de classe02?",isinstance(y,classe02)) #Vérifier si y est une instance de la classe classe01 print("y est une instance de classe01?",isinstance(y,classe01))Sortiex est une instance de classe01? True x est une instance de classe02? False y est une instance de classe02? True y est une instance de classe01? FalseUtiliser
isinstance()pour plusieurs classes- La fonction
isinstance()nous permet de vérifier si un objet est une instance de n'importe quelle classe parmi certaines classes données. - Dans ce cas, nous devons passer un tuple des classes requises. La fonction retournera true si l'objet est une instance de n'importe quelle classe, sinon retourne false.
Codeclass classe01: dd=10 mm=2 yyyy=2002 class classe02: hr=12 min=56 sec=34 #création d'instances x=classe01() y=classe02() #Vérifier si x est une instance de la classe classe01 ou la classe classe02 print("x est une instance de classe01 ou classe02?",isinstance(x,(classe01,classe02))) #Vérifier si y est une instance de la classe classe01 ou la classe classe02 print("y est une instance de classe01 ou classe02?",isinstance(y,(classe01,classe02)))Sortiex est une instance de classe01 ou classe02? True y est une instance de classe01 ou classe02? True- La fonction
Exercices d'application
Énoncé
- Soit la liste suivante:
stock = ["Ordinateur de bureau", "Ordinateur portable", 100, "Caméra",310.28,"Haut-parleurs", 27.00,"Télévision", 1000,"Cartes mères","souris","clavier",500,"barrettes de mémoire"]
- Afficher la liste "stock"
- ِCréer des listes séparées composées de chaînes et de nombres.
- Compter le nombre d'élément de chaque liste
- Trier la liste de chaînes par ordre croissant
- Trier la liste de chaînes par ordre décroissant
- Trier la liste des numéros du plus petit au plus grand
- Trier la liste des numéros du plus grand au plus petit
- Soit la liste suivante:
stock = ["Ordinateur de bureau", "Ordinateur portable", 100, "Caméra",310.28,"Haut-parleurs", 27.00,"Télévision", 1000,"Cartes mères","souris","clavier",500,"barrettes de mémoire"]
Correction
- Essayez de faire l'exercice de votre côté avant de regarder la Solution !