Escriba sugerencias en Python

Python es un lenguaje de tipo dinámico, lo que significa que nunca tiene que indicar explícitamente qué tipo de tipo tiene la variable. Pero en algunos casos, la escritura dinámica puede generar algunos errores que son muy difíciles de depurar y, en esos casos, las sugerencias de tipo o la escritura estática pueden ser convenientes. Type Hints se ha introducido como una nueva función en Python 3.5.

Veamos esta función factorial para entender esto claramente:

# factorial function
def factorial(i):
  if i<0:
    return None
  if i == 0:
    return 1
  return i * factorial(i-1)
  
# passing an integer to the function
print(factorial(4))
  
# passing a string to the function
print(factorial("4"))
  
# passing a floating point number to the function
print(factorial(5.01))

Si intentamos pasar un número entero a la función, funciona correctamente. Ahora, si intentamos pasar una string a la función factorial, obtendremos un error, ya que no podemos hacer una comparación matemática con la string.
Además, si intentamos pasar un número de coma flotante, digamos 5.01, también obtendremos un error aquí, ya que estamos disminuyendo el número en 1 según nuestra lógica en cada iteración y se convierte en -0.99 en la última iteración que devuelve » Ninguno”, lo que conduce a un error ya que estamos tratando de multiplicar “Ninguno” con otros números de punto flotante.

El código de Type-Hints tiene el siguiente aspecto:
tenemos que especificar el tipo de argumento y también el tipo de la función factorial.

# factorial function
def factorial(i: int) -> int:
  if i<0:
    return None
  if i == 0:
    return 1
  return i * factorial(i-1)
  
# passing a fraction to the function
print(factorial(5.01))

El intérprete de Python ignora por completo la sugerencia de tipo. Entonces, si ejecutamos este código nuevamente, aún obtenemos el mismo error.

Entonces, tenemos que usar un verificador de tipo estático que analice nuestro código e intente detectar si estamos violando nuestras Sugerencias de tipo o no.
El verificador de tipo más conocido es » mypy «. Podemos instalarlo simplemente usando pip .

pip install mypy

Para ejecutar el código ahora, simplemente debemos llamar al intérprete de Python y debemos especificar «-m» para indicar que queremos cargar un módulo y luego especificar el script que queremos verificar. Por ejemplo:

mypy program.py

Ahora, si ejecutamos esto, en realidad no ejecutará nuestro program.pyscript » «, pero lo analizará y nos dará un error como «El argumento 1 para factorial tiene un tipo flotante incompatible ; esperado int ” y que es un mensaje muy claro y que nos hace mucho más fácil depurar nuestro código ya que anteriormente sin el verificador de tipo mypy , el mensaje de error no era tan específico. Y si volvemos a ejecutar el código con un número entero, funcionará igual de bien.

Publicación traducida automáticamente

Artículo escrito por imavijit y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *