Ola amigo.
Observação importante.
Obrigado por compartilhar.
No entanto mesmo sendo dinamicamente tipado, Python realiza verificação de tipos em tempo de execução.
Isso significa que a linguagem identifica incompatibilidades quando uma operação inválida é executada.
Por exemplo, tentar somar um número inteiro com uma string resultará em um erro do tipo TypeError.
idade = "20"
print(idade + 5)
Resultado:
TypeError: can only concatenate str (not "int") to str
Outra característica importante da tipagem dinâmica é que uma mesma variável pode receber valores de tipos diferentes ao longo da execução do programa:
x = 10
x = "Olá"
x = 3.14
Embora essa flexibilidade seja vantajosa em projetos menores e no desenvolvimento rápido, aplicações maiores podem exigir maior controle de tipos para evitar erros e facilitar a manutenção do código.
Por esse motivo, o Python moderno oferece suporte à tipagem estática opcional através dos chamados type hints.
Os type hints permitem declarar explicitamente os tipos esperados em variáveis, parâmetros e retornos de funções:
def soma(a: int, b: int) -> int:
return a + b
Nesse exemplo, a função indica que recebe dois números inteiros e retorna um inteiro.
Diferente do Java ou do TypeScript, o interpretador Python não impede automaticamente que outros tipos sejam utilizados.
Entretanto, ferramentas externas podem analisar o código e identificar inconsistências antes da execução.
Entre as principais ferramentas utilizadas para esse controle estão:
mypypyrightpylancepydantic
Essas ferramentas realizam análise estática de tipos, funcionando de maneira semelhante ao TypeScript no ecossistema JavaScript.
Assim, caso um desenvolvedor utilize um tipo incorreto, o analisador emitirá avisos ou erros durante o desenvolvimento.
Exemplo:
def soma(a: int, b: int) -> int:
return a + b
resultado = soma("10", 5)
Embora o Python permita executar o código, ferramentas como mypy identificarão que uma string foi passada onde era esperado um inteiro.
Em projetos modernos, frameworks como FastAPI utilizam fortemente esse sistema de tipagem para realizar validação automática de dados, geração de documentação e aumento da segurança da aplicação.
Dessa forma, Python consegue unir a flexibilidade da tipagem dinâmica com recursos avançados de tipagem estática opcional, oferecendo tanto simplicidade para iniciantes quanto robustez para sistemas maiores e mais complexos.
Uma boa prática é utilizar tipagem explícita e consistente nas variáveis, especialmente em projetos maiores, pois isso facilita a manutenção do código, reduz erros de incompatibilidade entre tipos e torna o desenvolvimento mais organizado, assim como ocorre em linguagens de tipagem estática, como Java e TypeScript.
Avise qualquer duvida.
Bons estudos.