Les fonctions type() et isinstance() en Python effectuent une vérification de type, mais avec des caractéristiques distinctes.
La fonction type() évalue le type d'un objet et renvoie l'objet type lui-même. Il vérifie le type exact de l'objet sans tenir compte de l'héritage.
En revanche, isinstance() vérifie si un objet est une instance d'un type spécifié ou de ses sous-classes. Il prend en charge l'héritage, ce qui signifie qu'un objet d'une classe dérivée réussira la vérification isinstance() pour la classe de base.
Considérez les extraits de code suivants :
# Using type() import types if type(a) is types.DictType: do_something() if type(b) in types.StringTypes: do_something_else()
# Using isinstance() if isinstance(a, dict): do_something() if isinstance(b, str) or isinstance(b, unicode): do_something_else()
Les vérifications type() réussiront uniquement si l'objet est une instance du type exact, tandis que isinstance() réussira si l'objet est une instance du type spécifié. (dict dans l'exemple) ou l'une de ses sous-classes.
En général, isinstance() est préféré pour la plupart des scénarios de vérification de type car il prend en charge de manière transparente l'héritage et est plus lisible que les vérifications type(). Pour des contrôles précis où l'héritage n'est pas un problème, type() peut être utilisé.
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!