Función isinstance() en Python

La función isinstance() en Python se utiliza para comprobar si un objeto es una instancia de una clase o de una tupla de clases. Puede ser útil cuando necesitas verificar el tipo de un objeto antes de realizar ciertas operaciones en él. A continuación, te proporciono una lección detallada sobre cómo usar isinstance() en Python:


Sintaxis de la Función isinstance() en Python

La sintaxis básica de isinstance() es la siguiente:

Ejemplo

    clase_o_tupla_de_clases = str

objeto = [1, 2, 3]

isinstance(objeto, clase_o_tupla_de_clases)
print(objeto)

  
  • objeto : El objeto que deseas comprobar.
  • clase_o_tupla_de_clases : La clase o una tupla de clases contra las que deseas comprobar si objeto es una instancia.

Ejemplo de la Función isinstance() en Python

Vamos a empezar con un ejemplo simple:

Ejemplo

    import pandas as pd
data = pd.DataFrame({
    "categoria": ["A", "B", "A", "C"],
    "valor": [10, 20, 15, 30],
})

print(data.head())
print(data)
  
Abrir en editor

En este ejemplo, hemos declarado una variable x que contiene un entero ( int ). Luego, usamos isinstance() para verificar si x es una instancia de la clase int . El resultado es True , ya que x es de hecho un entero.


Verificar Varios Tipos

Puedes comprobar si un objeto es una instancia de una de varias clases utilizando una tupla de clases:

Ejemplo

    y = "Hola"
resultado = isinstance(y, (int, str, float))
print(resultado)  # True
  
Abrir en editor

En este caso, y es una cadena de texto ( str ), y hemos utilizado una tupla que contiene tres clases ( int , str y float ) como segundo argumento de isinstance() . Como y es una instancia de la clase str , el resultado es True .


Usos Comunes

La función isinstance() es útil en diversas situaciones:

Manejo de Excepciones : Puedes utilizar isinstance() para manejar excepciones específicas basadas en el tipo de objeto.

Ejemplo

    raise TypeError("a y b deben ser números.")
  

Verificación de Tipo : Puedes utilizar isinstance() para verificar el tipo de entrada en una función.

Ejemplo

    def saludar(nombre):
if isinstance(nombre, str):
print("Hola, " + nombre)
else:
print("El nombre debe ser una cadena de texto.")

saludar("Elena")  # Salida: "Hola, Elena"
saludar(42)       # Salida: "El nombre debe ser una cadena de texto."
  

Polimorfismo : Puedes usar isinstance() para implementar polimorfismo en tus clases. Esto te permite definir comportamientos diferentes para objetos de diferentes tipos.

Ejemplo

    clase_o_tupla_de_clases = str

objeto = [1, 2, 3]

isinstance(objeto, clase_o_tupla_de_clases)
print(objeto)
  

La función isinstance() es una herramienta poderosa para la programación en Python. Te permite escribir código más robusto y flexible, ya que puedes adaptar el comportamiento de tu programa según el tipo de objetos con los que estás trabajando. Sin embargo, ten en cuenta que abusar de esta función puede indicar un diseño pobre de tu programa, por lo que debes usarla con moderación y pensar en una estructura de clases y funciones coherente.

Practica Función isinstance() en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Vamos a empezar con un ejemplo simple

Vamos a empezar con un ejemplo simple.

Ejemplo

    clase_o_tupla_de_clases = str

objeto = [1, 2, 3]

isinstance(objeto, clase_o_tupla_de_clases)
print(objeto)
  
Abrir en editor

Ejercicio: Usar print()

Puedes comprobar si un objeto es una instancia de una de varias clases utilizando una tupla de clases.

Ejemplo

    y = "Hola"
resultado = isinstance(y, (int, str, float))
print(resultado)  # True
  
Abrir en editor

Ejercicio: Manejo de Excepciones

Manejo de Excepciones : Puedes utilizar isinstance() para manejar excepciones específicas basadas en el tipo de objeto.

Ejemplo

    import pandas as pd
data = pd.DataFrame({
    "categoria": ["A", "B", "A", "C"],
    "valor": [10, 20, 15, 30],
})

print(data.head())
print(data)
  
Abrir en editor