Fonction isinstance() de Python
Fonctions intégrées de Python3
isinstance()C'est une fonction intégrée de Python utilisée pour vérifier si un objet est une instance du type spécifié (ou de n'importe quel type dans un tuple de types).
isinstance()C'est la fonction de vérification de type la plus couramment utilisée en Python. Elle ne vérifie pas seulement le type exact, mais prend également en compte les relations d'héritage (les sous-classes sont aussi des instances de leur classe parente).
Définition du terme: isinstance 是 is an instance(是一个实例)的缩写。
Syntaxe de base et paramètres
Syntaxe
isinstance(object, classinfo)
Description du paramètre
- Paramètre object:
- Type : Tout objet
- Description : L'objet à vérifier.
- Paramètre classinfo:
- Type : un type, un tuple de types ou une classe de base abstraite
- Description : le type avec lequel effectuer la vérification. Peut être un type unique ou un tuple de types.
Description de la fonction
- Valeur de retour: Renvoie une valeur booléenne
TrueouFalse。 - Fonctionnalité: Renvoie True si object est une instance d'une sous-classe de classinfo.
Exemples
Exemple 1 : Utilisation de base
Exemple
print(isinstance(123, int)) # Sortie : True
print(isinstance(3.14, float)) # Sortie : True
print(isinstance("hello", str)) # Sortie : True
print(isinstance([1, 2], list)) # Sortie : True
print(isinstance({"a": 1}, dict)) # Sortie : True
# Vérifier None
print(isinstance(None, type(None))) # Sortie : True
# Vérifier les valeurs booléennes (note : bool est une sous-classe de int)
print(isinstance(True, bool)) # Sortie : True
print(isinstance(True, int)) # Sortie : True (car bool hérite de int)
Sortie attendue :
True True True True True True True True
Analyse du code :
- Il peut vérifier divers types de base.
- bool est une sous-classe de int, donc True/False sont aussi des instances de int.
Exemple 2 : Utilisation d'un tuple de types
Exemple
value = 42
print(isinstance(value, (int, float))) # Sortie : True
print(isinstance(value, (str, list))) # Sortie : False
# Vérifier un mélange de plusieurs types
value = "hello"
print(isinstance(value, (int, str, bytes))) # Sortie : True
# Utilisé dans les instructions conditionnelles
def process_data(data):
if isinstance(data, (list, tuple)):
return sum(data)
elif isinstance(data, (int, float)):
return data * 2
else:
return str(data)
print(process_data([1, 2, 3])) # Sortie : 6
print(process_data((1, 2, 3))) # Sortie : 6
print(process_data(10)) # Sortie : 20
print(process_data(3.14)) # Sortie : 6.28
print(process_data("hello")) # Sortie : hello
Sortie attendue :
True False True 6 6 20 6.28 hello
Analyse du code :
- Le deuxième paramètre peut être un tuple de types, permettant de vérifier plusieurs types à la fois.
- C'est très pratique lorsqu'on travaille avec plusieurs types de données.
Exemple 3 : Avec l'héritage de classes
Exemple
class Animal:
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
# Créer une instance
dog = Dog()
cat = Cat()
animal = Animal()
# isinstance tient compte de l'héritage
print(isinstance(dog, Dog)) # Sortie : True
print(isinstance(dog, Animal)) # Sortie : True (une instance d'une sous-classe est aussi une instance de la classe parente
print(isinstance(dog, Cat)) # Sortie : False
print(isinstance(cat, Animal)) # Sortie : True
print(isinstance(animal, Dog)) # Sortie: False
Sortie attendue :
True True False True False
isinstance()Elle vérifie la chaîne d'héritage, donc les instances des sous-classes sont aussi des instances de la classe parente.
Fonctions intégrées de Python3
Autres extensions