Entendiendo type() e isinstance() en Python: ejemplos prácticos
Entendiendo type() e isinstance() en Python: ejemplos prácticos
¿Qué es type() en Python?
Python tiene una función integrada llamada type() que te ayuda a encontrar el tipo de clase de la variable dada como entrada. Por ejemplo, si la entrada es una cadena, obtendrás <class 'str'>, para una lista, <class 'list'>, etc.
Usando type(), puedes pasar un solo argumento, y el valor de retorno será el tipo de clase del argumento dado, ejemplo: type(objeto).
También es posible pasar tres argumentos a type(), es decir, type(nombre, bases, dict), en cuyo caso devolverá un nuevo objeto tipo.
En este tutorial aprenderás:
- Qué es
type()en Python - Sintaxis de
type() - Ejemplo de
type() - Ejemplo: Usando
type()para objeto de clase - Ejemplo: Usando nombre, bases y dict en
type() - Qué es
isinstance()en Python - Sintaxis de
isinstance() - Ejemplos de
isinstance() - Diferencia entre
type()yisinstance()en Python
Sintaxis de type():
type() puede usarse de dos formas como se muestra a continuación:
type(objeto) type(nombre, bases, dict)
Parámetros: type(objeto)
- objeto: Parámetro obligatorio. Si es el único parámetro pasado a
type(), devolverá el tipo del parámetro.
Parámetros: type(nombre, bases, dict)
- nombre: nombre de la clase.
- bases: (opcional). Clase base.
- dict: (opcional). Espacio de nombres con la definición de la clase.
Valor de retorno:
Si solo se pasa el objeto a type(), devolverá el tipo del objeto.
Si los parámetros pasados son type(nombre, bases, dict), devolverá un nuevo objeto tipo.
Ejemplo de type()
En este ejemplo tenemos un valor de cadena, número, valor flotante, número complejo, lista, tupla, diccionario y conjunto. Usaremos las variables con type para ver la salida de cada una.
str_lista = "Bienvenido a Guru99"
edad = 50
pi = 3.14
c_num = 3j + 10
mi_lista = ["A", "B", "C", "D"]
mi_tupla = ("A", "B", "C", "D")
mi_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
mi_set = {'A', 'B', 'C', 'D'}
print("El tipo es:", type(str_lista))
print("El tipo es:", type(edad))
print("El tipo es:", type(pi))
print("El tipo es:", type(c_num))
print("El tipo es:", type(mi_lista))
print("El tipo es:", type(mi_tupla))
print("El tipo es:", type(mi_dict))
print("El tipo es:", type(mi_set))
Salida:
El tipo es: <class 'str'> El tipo es: <class 'int'> El tipo es: <class 'float'> El tipo es: <class 'complex'> El tipo es: <class 'list'> El tipo es: <class 'tuple'> El tipo es: <class 'dict'> El tipo es: <class 'set'>
Ejemplo: Usando type() para objeto de clase
Cuando verificas el objeto creado desde una clase usando type(), devuelve el tipo de clase junto con el nombre de la clase. En este ejemplo, crearemos una clase y verificaremos el tipo de objeto creado desde la clase test.
class test:
s = 'testing'
t = test()
print(type(t))
Salida:
<class '__main__.test'>
Ejemplo: Usando nombre, bases y dict en type()
El type también puede llamarse usando la sintaxis: type(nombre, bases, dict).
Los tres parámetros pasados a type() —nombre, bases y dict— son los componentes que componen una definición de clase. El nombre representa el nombre de la clase, bases es la clase base, y dict es el diccionario de atributos de la clase base.
En este ejemplo, vamos a hacer uso de los tres parámetros: nombre, bases y dict en type().
class MiClase:
x = 'Hola Mundo'
y = 50
t1 = type('NuevaClase', (MiClase,), dict(x='Hola Mundo', y=50))
print(type(t1))
print(vars(t1))
Salida:
<class 'type'>
{'x': 'Hola Mundo', 'y': 50, '__module__': '__main__', '__doc__': None}
Cuando pasas los tres argumentos a type(), ayuda a inicializar una nueva clase con atributos de la clase base.
¿Qué es isinstance() en Python?
isinstance() de Python es parte de las funciones integradas de Python. isinstance() toma dos argumentos y devuelve True si el primer argumento es una instancia de la clase/tipo dado como segundo argumento.
Sintaxis isinstance()
isinstance(objeto, tipo_clase)
Parámetros
- objeto: Un objeto cuya instancia comparas con tipo_clase. Devolverá true si el tipo coincide, false en caso contrario.
- tipo de clase: Un tipo, una clase o una tupla de tipos y/o clases.
Valor de retorno:
Devolverá True si el objeto es una instancia de tipo_clase y False si no lo es.
Ejemplos de isinstance()
Ejemplo: Comprobación de entero con isinstance()
El código siguiente compara el valor entero 51 con tipo int. Devolverá true si el tipo de 51 coincide con int, false en caso contrario.
edad = isinstance(51, int)
print("edad es un entero:", edad)
Salida:
edad es un entero: True
Ejemplo: Comprobación de flotante con isinstance()
En este ejemplo compararemos el valor flotante con tipo float, es decir, valor 3.14 comparado con tipo float.
pi = isinstance(3.14, float)
print("pi es un flotante:", pi)
Salida:
pi es un flotante: True
Ejemplo: Comprobación de cadena con isinstance()
mensaje = isinstance("Hola Mundo", str)
print("mensaje es una cadena:", mensaje)
Salida:
mensaje es una cadena: True
Ejemplo: Comprobación de tupla con isinstance()
El código verifica una tupla (1,2,3,4,5) con tipo tuple. Devolverá true si la entrada es de tipo tuple, false si no.
mi_tupla = isinstance((1,2,3,4,5), tuple)
print("mi_tupla es una tupla:", mi_tupla)
Salida:
mi_tupla es una tupla: True
Ejemplo: Comprobación de conjunto con isinstance()
mi_set = isinstance({1,2,3,4,5}, set)
print("mi_set es un conjunto:", mi_set)
Salida:
mi_set es un conjunto: True
Ejemplo: Comprobación de lista con isinstance()
mi_lista = isinstance([1,2,3,4,5], list)
print("mi_lista es una lista:", mi_lista)
Salida:
mi_lista es una lista: True
Ejemplo: Comprobación de diccionario con isinstance()
mi_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"}, dict)
print("mi_dict es un diccionario:", mi_dict)
Salida:
mi_dict es un diccionario: True
Ejemplo: Prueba isinstance() en una clase
El código muestra la comprobación de tipo de clase con isinstance(). El objeto de la clase se compara con el nombre de la clase dentro de isinstance(). Devuelve true si el objeto pertenece a la clase y false en caso contrario.
class MiClase:
_mensaje = "Hola Mundo"
_clase = MiClase()
print("_clase es instancia de MiClase():", isinstance(_clase, MiClase))
Salida:
_clase es instancia de MiClase(): True
Diferencia entre type() e isinstance() en Python
| type() | isinstance() |
|---|---|
| Función integrada que ayuda a encontrar el tipo de clase de la variable dada como entrada. | Función integrada que compara el valor con el tipo dado. Si coinciden devuelve true, false en caso contrario. |
| El valor de retorno es un objeto tipo. | El valor de retorno es un booleano (true o false). |
class A:
mi_listaA = [1,2,3]
class B(A):
mi_listaB = [1,2,3]
print(type(A()) == A)
print(type(B()) == A)
Salida: True False En caso de type, la comprobación de subclase devuelve false. |
class A:
mi_listaA = [1,2,3]
class B(A):
mi_listaB = [1,2,3]
print(isinstance(A(), A))
print(isinstance(B(), A))
Salida: True True isinstance() devuelve valor verdadero al comprobar con una subclase. |
Resumen
- Python tiene una función integrada llamada
type()que ayuda a encontrar el tipo de clase de la variable dada como entrada. - Para
type(), puedes pasar un solo argumento, y el valor de retorno será el tipo de clase del argumento dado, ej.,type(objeto). - También es posible pasar tres argumentos a
type(), es decir,type(nombre, bases, dict), en cuyo caso devolverá un nuevo objeto tipo. - Python tiene una función integrada llamada
isinstance()que compara el valor con el tipo dado. Si coinciden devuelve true, false en caso contrario. - Usando
isinstance(), puedes probar para cadena, flotante, entero, lista, tupla, diccionario, conjunto, clase, etc.
python
- Construya un robot con Raspberry Pi y Python: Guía completa
- Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
- Dominando conversión y casting de tipos en Python: Guía completa
- Dominando Números, Conversión de Tipos y Matemáticas en Python
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Domine el Formateo de Strings en Python con format(): Ejemplos Claros
- Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
- Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
- Función round() en Python explicada con ejemplos prácticos
- Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
- Python timeit(): medición de tiempo de ejecución con ejemplos prácticos