Diferencia entre escribir.Dict y Dict y sus usos en Python

Diferencia entre escribir.Dict y Dict y sus usos en Python

Al declarar un diccionario como argumento en una función de Python, generalmente declaramos el tipo de datos de clave y valor como una variable global, no como una local.

¿Qué pasa si necesitamos declarar el tipo de datos de las claves y valores del diccionario como una variable local? Este artículo analiza cómo podemos usar sugerencias de tipo con typing.Dict y diferenciarlas de la función dict habitual.

Diferencia entre typing.Dict y dict y sus usos en Python

No existe una diferencia real entre usar un typing.Dict y un simple dict cuando se declara un diccionario como argumento en una función de Python.

Sin embargo, la función typing.Dict es una función de Tipo genérico que nos permite especificar el tipo de datos de las claves y valores, haciéndola más flexible.

Además, dado que no podemos inferir estáticamente información de tipos sobre objetos que se guardan genéricamente en contenedores, las clases base abstractas se han ampliado para admitir suscripciones para indicar tipos comunes para elementos de contenedores.

def exampleFunction(typing.Dict[str, int])

Por ejemplo, en algún momento de la vida de nuestro proyecto, queremos definir el argumento del diccionario con un poco más de precisión, momento en el que expandir escribiendo.Dict a escribiendo.Dict[tipo_clave, tipo_valor] es un cambio menor que reemplazar todo el diccionario con dict().

Podemos hacer que nuestros diccionarios sean más genéricos utilizando los tipos Mapping o MutableMapping. Un diccionario es un mapeo, pero podríamos crear otros objetos que satisfagan la interfaz de mapeo.

def exampleFunction(typing.Mapping[str, int])

Tenga en cuenta que Python no aplica sugerencias de tipo. Son solo sugerencias y no se utilizan para implementar tipos en tiempo de ejecución o compilación.

Sin embargo, si usamos Python versión 3.9 y superior, Python ha desaprobado typing.Dict y en su lugar ha impuesto sugerencias de tipo en los comandos integrados dict(). Podemos especificar el tipo al declarar un diccionario en Python.

def exampleFunction(dict[str, int])
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn