type() et isinstance() dans Python avec des exemples

⚡ Résumé intelligent

Python Les fonctions intégrées `type()` et `isinstance()` permettent de vérifier la classe d'un objet. `type()` renvoie le type exact, tandis que `isinstance()` vérifie si un objet appartient à une classe ou à un tuple de classes. Leur utilisation est illustrée ci-dessous par des exemples.

  • 🔍 taper(): Renvoie la classe exacte d'un objet, telle que str, int ou list.
  • isinstance() : Vérifie si un objet est une instance d'une classe donnée, et renvoie True ou False.
  • 🧩 type à trois arguments() : type(name, bases, dict) crée dynamiquement un tout nouvel objet de classe.
  • 🌳 Sous-classes : La fonction isinstance() renvoie True pour les sous-classes ; la fonction type() vérifie uniquement la classe exacte.
  • (I.e. Cas d'utilisation: Validez les types d'entrée, les variables de débogage et la logique de branchement par type d'objet.
  • 🤖 Aide de l'IA : Les outils d'IA comme Copilot génèrent des vérifications type() et isinstance() à la demande.

type() et isinstance() dans Python

Qu'est-ce que type() dans Python?

Python a une fonction intégrée appelée type() qui vous aide à trouver le type de classe de la variable donnée en entrée. Par exemple, si l'entrée est une chaîne, vous obtiendrez la sortie sous la forme , pour la liste, ce sera , etc.

En utilisant la commande type(), vous pouvez passer un seul argument et la valeur de retour sera le type de classe de l'argument donné, exemple : type(objet).

Il est également possible de passer trois arguments à type(), c'est-à-dire type(name, bases, dict), dans ce cas, il vous renverra un nouvel objet type.

Syntaxe pour type()

type() peut être utilisé de deux manières, comme indiqué ci-dessous :

 type(object)
type(namr, bases, dict)

Paramètres: type(objet)

  • object : Il s’agit d’un paramètre obligatoire. S'il ne s'agit que d'un paramètre passé à type(), il vous renverra le type du paramètre.

Paramètres: type(nom, bases, dict)

  • nom : nom de la classe.
  • socles : (facultatif). Ceci est un paramètre facultatif et c'est la classe de base
  • dict : (facultatif). Il s'agit d'un paramètre facultatif et c'est un espace de noms qui a la définition de la classe.

Valeur de retour

Si l'objet est le seul paramètre passé à type() alors il vous renverra le type de l'objet.

Si les paramètres passés au type sont un type (objet, bases, dict), dans ce cas, il renverra un nouveau type d'objet.

Exemple de type()

Dans cet exemple, nous avons une valeur de chaîne, un nombre, une valeur flottante, un nombre complexe, une liste, un tuple, un dict et un ensemble. Nous utiliserons les variables de type pour voir le résultat de chacune d'elles.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

Sortie :

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

Exemple : utilisation de type() pour un objet de classe.

Lorsque vous vérifiez l'objet créé à partir d'une classe à l'aide de type(), il renvoie le type de classe ainsi que le nom de la classe. Dans cet exemple, nous allons créer une classe et vérifier le type d'objet créé à partir du test de classe.

class test:
    s = 'testing'

t = test()
print(type(t))

Sortie :

<class '__main__.test'>

Exemple : utilisation du nom, des bases et du dict dans type()

Le type peut également être appelé en utilisant la syntaxe : type(name, bases, dict).

Les trois paramètres passés à type()ie, name, bases et dict sont les composants qui composent une définition de classe. Le nom représente le nom de la classe, les bases est la classe de base et dict est le dictionnaire des attributs de la classe de base.

Dans cet exemple, nous allons utiliser les trois paramètres, c'est-à-dire le nom, les bases et le dict dans type().

Exemple :

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

Sortie :

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Lorsque vous transmettez les trois arguments à type() , cela vous aide à initialiser une nouvelle classe avec les attributs de classe de base.

Qu'est-ce que isinstance() dans Python?

Python isinstance fait partie de fonctions intégrées à Python. Python isinstance() prend deux arguments et renvoie vrai si le premier argument est une instance de l'information de classe donnée comme deuxième argument.

Syntaxe isinstance()

isinstance(object, classtype)

Paramètres

  • object : un objet dont vous comparez l’instance avec le type de classe. Il retournera vrai si le type correspond, sinon faux.
  • type de classe : un type ou une classe ou un tuple de types et/ou de classes.

Valeur de retour

Il renverra vrai si l'objet est une instance de type de classe et faux sinon.

Exemples de isinstance()

Dans cette section, nous étudierons divers exemples pour apprendre isinstance()

Exemple : isinstance() Vérification d'entier

Le code ci-dessous compare la valeur entière 51 avec le type int. Il renverra vrai si le type de 51 correspondances avec int sinon faux.

age = isinstance(51,int)
print("age is an integer:", age)

Sortie :

age is an integer: True

Exemple : isinstance() Vérification flottante

Dans cet exemple, nous allons comparer la valeur float avec le type float, c'est-à-dire que la valeur 3.14 sera comparée au type float.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

Sortie :

pi is a float: True

Exemple : isinstance() Vérification de la chaîne

message = isinstance("Hello World",str)
print("message is a string:", message)

Sortie :

message is a string: True

Exemple : isinstance() Vérification de tuple

Le code recherche un tuple (1,2,3,4,5) de type tuple. Il retournera vrai si l'entrée donnée est de type tuple et faux sinon.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

Sortie :

my_tuple is a tuple: True

Exemple : isinstance() Définir la vérification

Le code recherche un ensemble ({1,2,3,4,5}, de type set. Il renverra true si l'entrée donnée est de type set et false sinon.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

Sortie :

my_set is a set: True

Exemple : vérification de la liste isinstance()

Le code recherche une liste [1,2,3,4,5], avec une liste de types. Il retournera vrai si l'entrée donnée est de type liste et faux sinon.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

Sortie :

my_list is a list: True

Exemple : vérification de dict isinstance()

Le code recherche un dict({"A":"a", "B":"b", "C":"c", "D":"d"}, avec le type dict. Il retournera vrai si l'entrée donnée est de type dict et false sinon.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

Sortie :

my_dict is a dict: True

Exemple : test isinstance() sur une classe

Le code montre la vérification de type de la classe avec isinstance() . L'objet de la classe est comparé au nom de la classe dans isinstance(). Il renvoie vrai si l'objet appartient à la classe et faux dans le cas contraire.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

Sortie :

_class is a instance of MyClass() True

Différence entre type() et isinstance() dans Python

type() estinstance()
Python a une fonction intégrée appelée type() qui vous aide à trouver le type de classe de la variable donnée en entrée. Python possède une fonction intégrée appelée isinstance() qui compare la valeur avec le type donné. Si la valeur et le type donnés correspondent, elle renverra true, sinon false.
La valeur de retour est un objet de type La valeur de retour est un booléen, c'est-à-dire vrai ou faux.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

Sortie :

True
False

En cas de type, la vérification de sous-classe renvoie false.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

Sortie :

True
True

isinstance() donne une valeur véridique lorsqu'elle est vérifiée avec une sous-classe.

FAQ

La fonction intégrée `type()` renvoie la classe d'un objet. Avec un seul argument, elle renvoie le type de l'objet ; avec trois arguments (nom, bases, dictionnaire), elle crée une nouvelle classe.

La méthode `isinstance(object, classtype)` vérifie si un objet est une instance d'une classe ou d'un tuple de classes. Elle renvoie `True` si le type correspond et `False` sinon.

La fonction `type()` renvoie la classe exacte d'un objet et ignore l'héritage, tandis que `isinstance()` renvoie `True` même pour les sous-classes. Utilisez `isinstance()` pour des vérifications de type flexibles qui respectent la hiérarchie des classes.

Oui. L'appel à `type(name, bases, dict)` avec trois arguments renvoie dynamiquement un nouvel objet de classe. `name` est le nom de la classe, `bases` est un tuple de classes parentes et `dict` contient les attributs.

Oui. La méthode `isinstance()` renvoie `True` lorsqu'un objet est une instance d'une classe ou de l'une de ses sous-classes. Cela la rend plus sûre que `type()` pour vérifier les types hérités.

Les assistants IA comme GitHub Copilot complètent automatiquement les vérifications `type()` et `isinstance()`, génèrent des gardes de validation et suggèrent l'approche la plus appropriée pour un objet donné pendant que vous écrivez. Python.

Oui. Les outils basés sur l'IA peuvent automatiser l'insertion de gardes isinstance(), détecter les entrées non vérifiées et restructurer les comparaisons de type fragiles en vérifications isinstance() plus sûres dans l'ensemble de votre code.

La méthode `type()` renvoie l'objet de classe correspondant à la valeur : `list` pour une liste et `dict` pour un dictionnaire. Son affichage donne un résultat de la forme `class list` ou `class dict`.

Résumez cet article avec :