Fonction isinstance() de Python

Python3 内置函数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éenneTrueouFalse。
  • Fonctionnalité: Renvoie True si object est une instance d'une sous-classe de classinfo.

Exemples

Exemple 1 : Utilisation de base

Exemple

# Vérifier les types de base
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 :

  1. Il peut vérifier divers types de base.
  2. 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

# Vérifier plusieurs types (en utilisant un tuple)
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

# Exemple d'héritage de classe
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.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions