Python 3.X (solo) también generaliza la definición de funciones para permitir que los argumentos y los valores de retorno se anoten con valores de objeto
para su uso en extensiones .
Sus datos META para explicar, para ser más explícitos sobre los valores de la función.
Las anotaciones se codifican :value
después del nombre del argumento y antes de un valor predeterminado, y ->value
después de la lista de argumentos.
Se recopilan en un __annotations__
atributo de la función, pero Python no los trata como algo especial:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Fuente: Python Pocket Reference, quinta edición
EJEMPLO:
El typeannotations
módulo proporciona un conjunto de herramientas para la verificación de tipos y la inferencia de tipos de código Python. También proporciona un conjunto de tipos útiles para anotar funciones y objetos.
Estas herramientas están diseñadas principalmente para ser utilizadas por analizadores estáticos como linters, bibliotecas de finalización de código e IDE. Además, se proporcionan decoradores para realizar comprobaciones de tiempo de ejecución. La comprobación de tipos en tiempo de ejecución no siempre es una buena idea en Python, pero en algunos casos puede ser muy útil.
https://github.com/ceronman/typeannotations
Cómo escribir ayuda a escribir un mejor código
Escribir puede ayudarlo a hacer análisis de código estático para detectar errores de tipo antes de enviar su código a producción y evitar algunos errores obvios. Existen herramientas como mypy, que puede agregar a su caja de herramientas como parte de su ciclo de vida del software. mypy puede verificar los tipos correctos ejecutando su base de código parcial o totalmente. mypy también lo ayuda a detectar errores como verificar el tipo Ninguno cuando el valor es devuelto por una función. Escribir ayuda a que su código sea más limpio. En lugar de documentar su código usando comentarios, donde especifica tipos en una cadena de documentos, puede usar tipos sin ningún costo de rendimiento.
Clean Python: Codificación elegante en Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Sintaxis para anotaciones variables
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html