Sobes.tech
Junior

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.