Como usar dicas de tipo em python

Como usar dicas de tipo em python
Este artigo abordará um guia sobre o uso de "Dicas de tipo" em programas Python. Dicas de tipo são usadas para indicar tipos de objetos em uma linguagem de programação. Eles também declaram explicitamente o tipo de valores retornados por funções e classes. Esse mecanismo e estilo de codificação às vezes são chamados de "digitação estática" ou "verificação de tipo" na terminologia de programação. Algumas linguagens de programação aplicam dicas do tipo e sem elas, o intérprete ou o compilador lança erros.

Python é uma linguagem dinamicamente tipada e as dicas de tipo não são obrigatórias. O Python Interpreter identifica automaticamente os tipos de objetos durante a execução do código e também permite que os objetos alterem dinamicamente seus tipos durante a vida útil. No entanto, as dicas do tipo opcional foram introduzidas no Python 3.5, permitindo que os programadores usem dicas de tipo, se desejarem.

Observe que, diferentemente de outras linguagens de programação, o próprio intérprete Python não aplica dicas do tipo opcional, pois as considera apenas dicas. Você terá que usar módulos de terceiros ou plugins de editor de texto para aplicar a verificação rigorosa do tipo.

Por que usar dicas de tipo?

Dicas de tipo indicam explicitamente os tipos de objetos e reduzem a ambiguidade do código. Eles tornam muito mais fácil inferir a lógica por trás das declarações de código, especialmente quando a mesma base de código está sendo trabalhada por vários membros de uma equipe. Eles também são úteis quando as bases de código são acessadas após intervalos longos, pois as dicas de tipo facilitam a dedução da lógica subjacente. Dicas de tipo podem tornar muito mais fácil depurar o código quando ocorrem problemas e falhas. No entanto, eles aumentam a verbosidade no código e alguns desenvolvedores podem não gostar, pois afeta a sintaxe Python padrão, que é muito mais limpa. O uso de dicas de tipo em programas Python também pode ser uma escolha pessoal baseada no estilo e padrões de codificação de alguém. Como afirmado anteriormente, mesmo ao usar dicas de tipo, o intérprete Python não as aplica e você pode ter que instalar um módulo de terceiros para permitir a verificação estrita do tipo.

Sintaxe e uso básicos

O exemplo a seguir mostra dicas de tipo usado para um objeto "int" do tipo Python:

Def Square (número: int) -> int:
Número de retorno * Número
Imprimir (quadrado (5))

A primeira declaração define uma função chamada "quadrado". É preciso um argumento obrigatório chamado "número" e calcula seu quadrado. A dica de tipo para o argumento do número é definida como "int" usando ":" (cólon) símbolo, enquanto o tipo de tipo para o tipo de retorno é novamente definido como "int" usando um símbolo "->" (seta).

Sem dicas de tipo, a mesma função seria definida da seguinte maneira:

Def Square (número):
Número de retorno * Número
Imprimir (quadrado (5))

Você obterá a seguinte saída depois de executar as duas amostras de código declaradas acima:

25
25

Se você deseja apenas atribuir uma dica de tipo a uma variável durante sua declaração, use a seguinte sintaxe:

var1: str = "string"
var2: int = 5
VAR3: Float = 6.0

Você pode atribuir dicas de tipo a variáveis ​​antes de “=” sinal igual. Conforme explicado acima, os nomes de objetos e as dicas do tipo precisam ser separadas por um símbolo “:” (cólon).

O intérprete Python não aplica dicas do tipo. Portanto, se você alterar o tipo de objetos para qualquer outro tipo aleatório disponível no Python, você obterá o mesmo resultado, desde que a própria lógica não faça um erro. Aqui está o exemplo de código:

Def Square (Número: Float) -> STR:
Número de retorno * Número
resultado = quadrado (5)
Imprimir (resultado)
Imprimir (tipo (resultado))

Aqui, o argumento numérico é do tipo "flutuante". A função "quadrado" agora retorna um objeto do tipo "str". No entanto, esses dois tipos não são aplicados e você receberá “25” como saída e o valor retornado será do tipo “int”. Depois de executar a amostra de código acima, você deve obter a seguinte saída:

25

Usando aliases de tipo

Para definir dicas de tipo para objetos complexos contendo vários tipos ou tipos de objetos personalizados, você pode usar aliases de tipo. A amostra de código a seguir mostra o uso de aliases de tipo:

IntegerList = List [int]
Def Square (Numbers: IntegerList) -> IntegerList:
retornar [n * n para n em números]
resultado = quadrado ([5, 6, 7])
Imprimir (resultado)

Na primeira declaração, um novo pseudônimo de tipo chamado "IntegerList" é definido ao atribuir um tipo. A definição de tipo pode ser simples ou complexa contendo vários tipos. Em seguida, esse alias de tipo é então usado na função quadrada e é atribuída ao argumento principal e valor de retorno. A função quadrada agora retorna o quadrado de cada número em uma lista. Depois de executar a amostra de código acima, você deve obter a seguinte saída:

[25, 36, 49]

Usando dica do tipo "qualquer"

O tipo "qualquer" pode ser usado para anotar variáveis, argumentos e tipos de retorno com qualquer tipo de dica. Objetos com dica do tipo "qualquer" podem ser uma string, um número inteiro, um bóia ou qualquer outro tipo válido em python. Aqui está um exemplo:

de digitar importar qualquer
var1: qualquer = "string"
var2: qualquer = 5
VAR3: qualquer = 6.0

A primeira declaração importa o tipo "qualquer" do módulo "digitar". O módulo de digitação fornece suporte para dicas de tipo em programas Python e você deve importar certos tipos dele para usá -los. Em seguida, em vez de usar STR, int, flutuar ou qualquer outro tipo desse tipo, "qualquer" é usado para indicar que a variável pode ser de qualquer tipo durante sua vida útil. Observe que as dicas de tipo ainda não são aplicadas em Python sem usar nenhuma biblioteca de terceiros.

Usando um módulo de terceiros para verificar dicas do tipo

MyPy é um dos módulos de verificação do tipo mais amplamente utilizados disponíveis para Python. Você pode usá -lo para encontrar erros relacionados ao tipo de dica em seus programas Python. Você pode instalá -lo no Ubuntu e em outras distribuições Linux do gerenciador de pacotes PIP. Para fazer isso, execute um desses comandos:

$ pip instalar mypy
$ pip3 instale mypy

Depois que o MyPy estiver instalado no seu sistema Linux, você pode verificar problemas de verificação rigorosos em um programa Python, executando um comando no seguinte formato:

$ mypy Program.py

Observe que MyPy é apenas uma ferramenta para verificar a verificação estrita. Ele executará um relatório no seu programa Python e mostrará erros de verificação de tipo de tipo. No entanto, você ainda poderá executar programas Python normalmente (com ou sem dicas de tipo) e nenhum tipo de erro relacionado a dica será lançado durante a execução. Considere a seguinte amostra de código:

Def Square (número: int) -> int:
Número de retorno * Número
resultado = quadrado (5)
Imprimir (resultado)

Esta amostra de código é idêntica a um dos exemplos explicados acima. Supondo que reside em um “principal.arquivo py ”, você pode verificar as dicas do tipo usando o mypy executando o seguinte comando:

$ mypy main.py

Depois de executar o comando acima, você deve obter a seguinte saída:

Sucesso: Nenhum problema encontrado em 1 arquivo de origem

Se você fornecer um objeto de tipo de flutuação para a chamada de função quadrada no mesmo exemplo acima, o mypy lançará um erro.

Def Square (número: int) -> int:
Número de retorno * Número
resultado = quadrado (5.0)
Imprimir (resultado)

Agora, quando você executa o arquivo usando “mypy main.comando py ”, você receberá um erro semelhante a este:

principal.PY: 26: Erro: o argumento 1 a "quadrado" tem tipo incompatível "flutuação"; esperado "int"
Erro encontrado 1 em 1 arquivo (verificado 1 arquivo de origem)

Este é apenas um relatório de erro que mostrará que você digitará erros de dica. Se você executar as duas amostras de código mencionadas acima sem mypy, obterá a seguinte saída:

25
25.0

Isso abrange o uso mais básico e comum da sintaxe do tipo Dicas em Python. Para obter mais informações sobre dicas de tipo, uso avançado e tipos personalizados, consulte a documentação oficial do Python disponível aqui.

Conclusão

Dicas de tipo em Python fornecem uma maneira sistemática de anexar indicadores de tipo a variáveis, funções e classes. Embora o próprio Python não aplique dicas do tipo, você pode usar módulos de terceiros para verificar as dicas do tipo e usá -las como uma forma básica de testes para afirmar o comportamento pretendido dos objetos Python em seu programa. A maneira como a linguagem de programação Python é projetada e sua filosofia principal, verificação estrita do tipo para dicas de tipo nunca pode ser implementada na biblioteca Python padrão.