Python es un lenguaje de tipado dinámico, los errores se muestran en el tiempo de ejecución, pueden existir errores que nunca salgan a la luz

Static typing

Se debe añadir una sintaxis adiciona a nuestro código para identificar el typo de dato

para definir variables

**nombre_variable: tipo_variable= valor**

a: int=5
print(a)

b: str=4
print)

este feature es valido desde la version 3.6 de python.

Para definir funciones

**def funcion(variables) -> tipo_de_Dat_Return:**

def suma(a: int,b: int) -> int:
	return a+b

print(suma(1,2))

A pesar de indicar el tipo de dato de uso python nos indicara el error en el tiempo de ejecucion, para solucionar esto se usa el modulo mypy

Estructuras de datos

para definir el typo de una estructura de datos en python a partir de la version 3.9 podemos importar los módulos Dict y List del paquete typing

from typing import Dict, List
psitives: List[int]={1,2,4,5,6,7}
users: Dict[str,int]={
		'argentina':1,
		'mexico':34,
		'colombia':45
}

countries: List[Dict[str,str]]=[
{
'name':'Agentina',
'people':'4524320'
},
{
'name':'mexico',
'people':'900840'
},
{
'name':'Colombia',
'people':'99999999999999'
}
]

Tuplas

from typing import Tuple
numbers: Tuple[int,float,int]=(12,34.5,5)

cordinates=List[Dict[srt Tuple[int,int]]]

mypy

este modulo nos va a devolver los errores antes de que el código se ejecute de manera estática, esto aporta claridad y calidad para nuestro código