"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo elegir entre `type()` e `isinstance()` de Python para la verificación del tipo de objeto?

¿Cómo elegir entre `type()` e `isinstance()` de Python para la verificación del tipo de objeto?

Publicado el 2024-12-23
Navegar:945

How to Choose Between Python's `type()` and `isinstance()` for Object Type Checking?

Cómo determinar el tipo de un objeto

Determinar el tipo de un objeto es crucial para garantizar la coherencia de los datos y realizar las operaciones en consecuencia. Python proporciona dos funciones integradas para este propósito: type() e isinstance().

Usando type()

La función type() devuelve el tipo exacto de un objeto. Por ejemplo:

>>> type([]) is list
True
>>> type({}) is dict
True
>>> type('') is str
True
>>> type(0) is int
True

Uso de isinstance()

La función isinstance() comprueba si un objeto es una instancia de un tipo particular, incluidos los tipos heredados. A diferencia de type(), admite herencia de tipos.

>>> isinstance(b, Test1)
True
>>> isinstance(b, Test2)
True
>>> isinstance(a, Test1)
True
>>> isinstance(a, Test2)
False
>>> isinstance([], list)
True
>>> isinstance({}, dict)
True

Elegir entre type() e isinstance()

Generalmente, se prefiere isinstance() para verificar tipos de objetos, ya que toma en consideración los tipos derivados. Type() es más apropiado si necesita el tipo de objeto exacto por razones específicas. A continuación se muestra un ejemplo en el que podría utilizar isinstance():

def print_object_type(obj):
  if isinstance(obj, int):
    print("Integer")
  elif isinstance(obj, float):
    print("Float")
  elif isinstance(obj, str):
    print("String")
  else:
    print("Unknown type")
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3