¿Qué tipo de tipificación hay en Python: estática o dinámica?
sobes.tech AI
Respuesta de la IA
Dinámica, pero con elementos estáticos gracias a las anotaciones de tipos.
En la tipificación dinámica, el tipo de una variable se determina en tiempo de ejecución en función del valor asignado.
# Tipificación dinámica: x puede tomar diferentes tipos de datos
x = 10 # int
x = "hola" # str
Desde la versión Python 3.5, se han añadido anotaciones de tipos (type hints), que permiten indicar el tipo esperado de una variable, argumento de función o valor de retorno. Esto no hace que Python sea un lenguaje de tipado estático en el sentido clásico, pero permite usar analizadores estáticos de código (por ejemplo, mypy) para verificar los tipos antes de ejecutar el programa.
# Anotaciones de tipos
def greet(name: str) -> str:
return f"Hola, {name}"
edad: int = 30
Las principales diferencias entre tipificación dinámica y estática:
| Característica | Tipificación dinámica | Tipificación estática |
|---|---|---|
| Definición de tipos | En tiempo de ejecución | En tiempo de compilación |
| Verificación de errores de tipos | En tiempo de ejecución | En tiempo de compilación |
| Flexibilidad | Mayor | Menor |
| Rendimiento | Puede ser menor (debido a verificaciones en tiempo de ejecución) | Generalmente mayor (los tipos son conocidos de antemano) |
A pesar de las anotaciones, Python sigue siendo un lenguaje de tipado dinámico, ya que la verificación de tipos en tiempo de ejecución aún ocurre, y se puede asignar a una variable un valor de otro tipo, incluso si había una anotación sintáctica. Las anotaciones sirven para mejorar la legibilidad del código, facilitar la depuración y usar herramientas de análisis estático.