Hola @Panic0
Se llaman sugerencias o concretamente
hinting. Como menciona engel lex, son simplemente para indicar lo que debería retornar, y mejoran significativamente la calidad del código.
Pero Python los ignora, ya que si tenemos lo siguiente:
#!/usr/local/bin/python3.7
def foo() -> int:
return "1"
if __name__ == "__main__":
val = foo()
print(type(val), val)
Se retornaría sin ningún inconveniente, pero lo ideal sería especificar el tipo de dato que en verdad vamos a generar (el cual sería
str). No obstante, podría haber algún tipo de condición dentro de la función que permitiera no retornar nada (
None) cuando no se cumpla o podría retornar cuando pase todo lo contrario, entonces el retorno sería opcional. Ahí entraría la librería
typing para realizar sugerencias más potentes.
#!/usr/local/bin/python3.7
from typing import Optional
def foo(x: int) -> Optional[int]:
if (x > 0):
return x
if __name__ == "__main__":
val = foo(0)
print(type(val), val)
Lo siguiente imprimiría "
<class 'NoneType'> None" porque el número no es mayor a 0.
Aunque Python lo ignore, es muy útil cuando está creando una librería, ya que cuando se usa la función
help(...) dentro de la consola misma de Python, le mostraría al usuario qué debería retornar o qué debería pasarse en los argumentos.
También le podría interesar:
*.-
https://www.python.org/dev/peps/pep-0585~ DtxdF