Maison >développement back-end >Tutoriel Python >Comment déterminer efficacement les types d'objets en Python : `type()` vs `isinstance()` ?

Comment déterminer efficacement les types d'objets en Python : `type()` vs `isinstance()` ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-03 02:04:09697parcourir

How to Effectively Determine Object Types in Python: `type()` vs. `isinstance()`?

Comment déterminer le type d'un objet en Python

En Python, il existe plusieurs façons de déterminer le type d'un objet. Deux des méthodes les plus couramment utilisées sont type() et isinstance().

Utilisation de type()

La fonction type() renvoie le type exact d'un objet . Par exemple :

>>> type([])
<class 'list'>
>>> type({})
<class 'dict'>

Utilisation d'isinstance()

La fonction isinstance() vérifie si un objet est d'un type spécifié ou d'un sous-type de ce type. Il accepte deux arguments : l'objet à vérifier et le type ou le tuple de types à vérifier. Par exemple :

>>> isinstance([], list)
True
>>> isinstance({}, dict)
 True

Considérations sur l'héritage

isinstance() peut également être utilisé pour déterminer si un objet hérite d'un type spécifique. Par exemple :

class Test1(object):
    pass

class Test2(Test1):
    pass

obj1 = Test1()
obj2 = Test2()

>>> isinstance(obj1, Test1)
 True
>>> isinstance(obj2, Test1)  
 True

Choisir entre type() et isinstance()

isinstance() est plus robuste et prend en charge l'héritage de type. Il doit être utilisé dans la plupart des cas pour déterminer le type d'un objet. type() n'est recommandé que lorsque vous avez besoin du type exact de l'objet.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn