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.