O Python 3.X (apenas) também generaliza a definição de função para permitir que argumentos e valores de retorno sejam anotados com valores de objetos
para uso em extensões .
Seus dados META para explicar, para ser mais explícito sobre os valores da função.
As anotações são codificadas como :value
após o nome do argumento e antes de um padrão e como ->value
após a lista de argumentos.
Eles são coletados em um __annotations__
atributo da função, mas não são tratados como especiais pelo próprio Python:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Fonte: Referência de Bolso do Python, Quinta Edição
EXEMPLO:
O typeannotations
módulo fornece um conjunto de ferramentas para verificação de tipo e inferência de tipo de código Python. Ele também fornece um conjunto de tipos úteis para anotar funções e objetos.
Essas ferramentas são projetadas principalmente para serem usadas por analisadores estáticos, como linters, bibliotecas de conclusão de código e IDEs. Além disso, são fornecidos decoradores para fazer verificações em tempo de execução. A verificação do tipo em tempo de execução nem sempre é uma boa ideia no Python, mas em alguns casos pode ser muito útil.
https://github.com/ceronman/typeannotations
Como a digitação ajuda a escrever um código melhor
A digitação pode ajudá-lo a fazer uma análise de código estática para detectar erros de tipo antes de enviar seu código para produção e evitar erros óbvios. Existem ferramentas como mypy, que você pode adicionar à sua caixa de ferramentas como parte do seu ciclo de vida de software. O mypy pode verificar os tipos corretos executando sua base de código parcial ou totalmente. O mypy também ajuda a detectar erros, como verificar o tipo Nenhum quando o valor é retornado de uma função. Digitar ajuda a tornar seu código mais limpo. Em vez de documentar seu código usando comentários, onde você especifica tipos em uma sequência de documentos, você pode usar tipos sem nenhum custo de desempenho.
Python Limpo: Codificação Elegante em Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Sintaxe para anotações variáveis
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html