Comprendre les différences entre type() et isinstance()
En Python, type() et isinstance() sont deux fonctions utilisées pour la vérification de type. Cependant, ils ont des caractéristiques distinctes qui ont un impact sur leurs scénarios d'utilisation.
Vérification de type avec type()
type() renvoie le type d'un object, une classe à laquelle appartient l’objet. En comparant le type renvoyé avec un type connu, vous pouvez évaluer si un objet est de ce type spécifique :
import types if type(a) is types.DictType: do_something()
Ce code vérifie si l'objet a est un type de dictionnaire. Si c'est le cas, la fonction do_something() est exécutée.
Vérification de type avec isinstance()
isinstance() vérifie si un objet est une instance d'une classe ou d'une sous-classe spécifiée. Contrairement à type(), il prend en compte la hiérarchie d'héritage :
if isinstance(a, dict): do_something()
Ici, isinstance() vérifie si l'objet a est un dictionnaire ou une instance d'une classe qui hérite de dict . Si tel est le cas, la fonction do_something() est appelée.
Différences clés
class Cat(Animal): pass if isinstance(pet, Cat): # True do_something_catty()
type() renverrait Animal pour animal de compagnie, qu'il s'agisse d'un chat ou d'une autre sous-classe.
Meilleur Pratiques
En général, isinstance() est préféré lorsque :
type() est utile lorsque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!