En este post vamos a ver cómo usar type
e is
en Python para saber el tipo de una variable u objeto del lenguaje.
Gracias a esto podremos saber si una variable es una lista, un diccionario, un entero, flotante, etcétera.
También vamos a ver cómo determinar la clase de un objeto, es decir, saber si un objeto es instancia de una clase.
La función type en Python
No sé si esto es una función realmente (puede ser un constructor del lenguaje como lo es include
en PHP) pero se le pasa un valor y devuelve su tipo.
La sintaxis es:
tipo = type(variable)
Eso devuelve el tipo de una variable. Y para comprobar que es de determinado tipo usamos el operador is
. Por ejemplo:
print(type([1, 2, 3]) is list) # True
print(type([1, 2, 3]) is dict) # False
print(type([1, 2, 3]) is int) # False
print(type([1, 2, 3]) is float) # False
He preparado más ejemplos:
"""
Algunos ejemplos para determinar el tipo
de una variable en Python
@author parzibyte
"""
lista = [1, 2, 3]
print("Tipo de lista es list?", type(lista) is list)
print(type([1, 2, 3]) is list) # True
print(type([1, 2, 3]) is dict) # False
print(type([1, 2, 3]) is int) # False
print(type([1, 2, 3]) is float) # False
print(type(["Part of me", "Firework", "Roar"]) is list) # True
print(type({"clave": "Valor"}) is dict) # True
print(type(1) is int) # True
print(type(1.0) is float) # True
print(type("Hola mundo") is str) # True
class Mascota:
def __init__(self, edad):
pass
mascota = Mascota(2)
print(type(mascota) is Mascota) # True
Todos esos ejemplos pueden usarse en un if
si así se desea, pues devuelven un Booleano.
Clase de un objeto
Por cierto, type
también ayuda a determinar si un objeto es instancia de una clase.
En el ejemplo comprobamos si es una instancia de Mascota (mira más sobre los constructores y clases en Python en este post)
Conclusión
Gracias a esto podemos conocer el tipo de una variable que se pasa a nuestras funciones y de esta manera operar con más seguridad, sobre todo al trabajar con genéricos.
Pingback: Python - Longitud de cadena o lista sin usar len - Parzibyte's blog