Que tipo de tipagem há em Python: estática ou dinâmica?
sobes.tech IA
Resposta da IA
Dinâmico, mas com elementos estáticos graças às anotações de tipos.
Na tipagem dinâmica, o tipo de uma variável é determinado em tempo de execução com base no valor atribuído a ela.
# Tipagem dinâmica: x pode assumir diferentes tipos de dados
x = 10 # int
x = "olá" # str
Desde a versão Python 3.5, foram adicionadas anotações de tipos (type hints), que permitem indicar o tipo esperado de uma variável, argumento de função ou valor de retorno. Isso não torna o Python uma linguagem de tipagem estática no sentido clássico, mas permite usar analisadores estáticos de código (por exemplo, mypy) para verificar os tipos antes de executar o programa.
# Anotações de tipos
def greet(name: str) -> str:
return f"Olá, {name}"
idade: int = 30
Principais diferenças entre tipagem dinâmica e estática:
| Característica | Tipagem dinâmica | Tipagem estática |
|---|---|---|
| Definição de tipos | Em tempo de execução | Em tempo de compilação |
| Verificação de erros de tipos | Em tempo de execução | Em tempo de compilação |
| Flexibilidade | Maior | Menor |
| Desempenho | Pode ser menor (devido às verificações em tempo de execução) | Geralmente maior (os tipos são conhecidos antecipadamente) |
Apesar das anotações, o Python continua sendo uma linguagem de tipagem dinâmica, pois a verificação de tipos em tempo de execução ainda ocorre, e é possível atribuir a uma variável um valor de outro tipo, mesmo que tenha havido uma anotação sintática. As anotações servem para melhorar a legibilidade do código, facilitar a depuração e usar ferramentas de análise estática.