Resumen de tipos en Python — por qué importan los tipos y la puerta a las clases

Repasa los tipos básicos de Python con diagramas y da tu primer paso hacia POO definiendo tu propio tipo con class.

¿Qué es exactamente un «tipo»?

Hasta ahora has visto muchos tipos — int, float, str, bool, list, dict, tuple, set y más. Elegir el tipo adecuado para la tarea es lo que más importa en el día a día real.

El tipo decide «lo que puedes hacer»
5 + 3(int)8(suma)'hi' + '!'(str)'hi!'(concatenación)++

Como muestra el ejemplo, incluso el mismo operador + ejecuta operaciones distintas según el tipo.

Dicho de otra forma, elegir un tipo distinto según el propósito es la manera de cambiar lo que una variable puede hacer.

Todos los tipos vistos hasta ahora, de un vistazo

Vamos a organizar los tipos de Fundamentos de Python según su uso. Si lo que quieres es «hacer cálculos numéricos», «manejar texto» o «agrupar varios valores», el tipo correcto sale solo.

TipoUso típicoEjemplo
intCalcular precios o cantidades5, 100, -3
floatImportes con IVA o porcentajes de descuento3.14, 0.5
boolSeguimiento del estado de sesión o la disponibilidad de stockTrue, False
strGuardar nombres de usuario o comentarios'hello'
listUn carrito de compra o una lista ordenada de resultados de búsqueda[1, 2, 3]
tuplePares fijos como latitud/longitud(1, 2, 3)
dictMantener datos de usuario (id / name / email){'a': 1}
setDeduplicar tags o comprobar pertenencia{1, 2, 3}

Ten también en cuenta si un tipo es modificable (mutable) o no modificable (inmutable). list / dict / set son mutables; el resto es inmutable.

Puedes definir tus propios tipos con class

Todo lo visto hasta aquí — int / list / dict y compañía — es un tipo que Python trae de fábrica (un tipo incorporado). En proyectos reales aparecen muchos conceptos que los tipos incorporados no logran representar por sí solos: «Usuario», «Producto», «Pedido»… Python te permite definir tus propios tipos con class: esa es la puerta de entrada a la programación orientada a objetos (POO). Volveremos a la POO con más detalle en próximos artículos.

Clases e instancias
class Point(plano)Point(3, 4)(llamada)p(instancia)usacrea
# Define un nuevo tipo Point (una coordenada)
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p = Point(3, 4)   # crea una instancia de Point
print(p.x)        # 3

Un curso completo de POO llega en otra serie

Las clases, la herencia, el polimorfismo y el resto de la programación orientada a objetos se cubren en una serie aparte dedicada. Por ahora, basta con saber que además de los tipos incorporados, también puedes construir los tuyos.

QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1¿Cuál de estas opciones describe mejor el sentido de «pensar en los tipos» en Python?

Pregunta 2De los siguientes tipos, ¿cuál es mutable (modificable)?

Pregunta 3¿Qué palabra clave usas para definir tu propio tipo nuevo en Python?