La fonction isinstance() en python
Sommaire
- 1- Objectifs
- 2- Introduction
- 3- Définition
- 4- Syntaxe
- 4.1- Paramètres:
- 4.2- objet
- 4.3- classinfo
- 4.4- Valeurs de retour:
- 5- Cas d'utilisation
- 5.1- Utiliser
isinstance()
avec des classes natives en Python - 5.2- Utiliser
isinstance()
avec des classes définies par l'utilisateur - 5.3- Utiliser
isinstance()
pour plusieurs classes - 6- Exercices d'application
- 6.1- Énoncé
- 6.2- Correction
- 6.2.1- Sommaire du cours Python
La fonction isinstance() en python
-
Objectifs
- Être capable d’utiliser adéquatement la fonction
isinstance()
en python. -
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.
-
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
-
Valeurs de retour:
- La valeur de retour est « True » si
classinfo
est un objet de type et que l’objet
est 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é.
-
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 . -
Utiliser
isinstance()
avec des classes définies par l’utilisateur -
Utiliser
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.
-
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
-
Correction
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
isinstance(object, classinfo)
Exemple:01
print(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))
>>>True
Exemple:02
i=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
Code
class 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))
Sortie
x 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? False
Code
class 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)))
Sortie
x est une instance de classe01 ou classe02? True
y est une instance de classe01 ou classe02? True