Confirmar con isinstance()
En este paso, aprenderás cómo usar la función isinstance() en Python para verificar si un objeto es una instancia de una clase o tipo particular. Esta es otra forma de verificar el tipo de datos de una variable y puede ser especialmente útil cuando se trabaja con herencia y clases personalizadas.
Continuemos usando el archivo string_examples.py con el que has estado trabajando. Agregaremos algo de código para demostrar cómo funciona isinstance().
La función isinstance() toma dos argumentos: el objeto que deseas verificar y la clase o tipo contra el que deseas verificar. Devuelve True si el objeto es una instancia de la clase o tipo especificado, y False en caso contrario.
Agrega las siguientes líneas a tu archivo string_examples.py:
## Checking with isinstance()
print(isinstance(string1, str))
print(isinstance(number, int))
print(isinstance(decimal, float))
print(isinstance(boolean, bool))
print(isinstance(string1, int))
Guarda el archivo. Ahora, ejecutemos el script utilizando el comando python en la terminal:
python ~/project/string_examples.py
Deberías ver la siguiente salida:
Hello, LabEx!
Python is fun
12345
!@#$%^
This is a sentence.
This is a
multi-line string.
This is another
multi-line string.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
Como puedes ver, isinstance(string1, str) devuelve True porque string1 es una cadena (string). Del mismo modo, isinstance(number, int) devuelve True porque number es un entero, y así sucesivamente. Sin embargo, isinstance(string1, int) devuelve False porque string1 no es un entero.
isinstance() también se puede usar con clases personalizadas. Por ejemplo:
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass))
Agrega estas líneas a tu archivo string_examples.py y ejecútalo nuevamente:
python ~/project/string_examples.py
Deberías ver la siguiente salida:
Hello, LabEx!
Python is fun
12345
!@#$%^
This is a sentence.
This is a
multi-line string.
This is another
multi-line string.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
True
Aquí, isinstance(obj, MyClass) devuelve True porque obj es una instancia de MyClass.
Usar isinstance() es una forma poderosa de verificar el tipo de un objeto en Python, especialmente cuando se trabaja con herencia y clases personalizadas. Te permite escribir código más robusto y flexible que puede manejar diferentes tipos de datos correctamente.