Type hints são anotações que o Python não aplica em runtime; um checker estático como mypy ou pyright lê elas e reporta inconsistências antes de o código rodar. O retorno é pegar classes inteiras de erro, como um None fluindo onde um valor é obrigatório, além de completar e refatorar muito melhor no editor. Elas também documentam intenção de forma mais confiável que uma docstring, que desatualiza.
Por que os entrevistadores perguntam isso
Tipagem hoje é expectativa padrão em bases de código Python sérias, então os entrevistadores checam tanto se você usa quanto se você entende os limites. As duas coisas que eles escutam são que anotações não são aplicação em runtime, e que você tem uma estratégia para adotar tipos numa base existente de forma gradual em vez de anunciar um grande rewrite que nunca sai.
Como estruturar sua resposta
- Diga que anotações são estáticas, não aplicadas em runtime.
- Liste os bugs concretos que um checker pega.
- Descreva adoção gradual numa base legada.
- Mencione os benefícios de ferramental além da correção.
Exemplo de resposta
Em runtime elas são basicamente comentários, já que o Python guarda e segue em frente. O valor vem de um checker lendo elas. O mypy pega os bugs sem graça que causam a maioria dos incidentes, principalmente valores opcionais fluindo para código que assume um objeto real, e desvio de assinatura depois de uma refatoração em que um chamador foi esquecido. Numa base que eu herdei, com uns sessenta mil linhas e nenhuma anotação, a gente ligou o mypy com quase tudo desabilitado, colocou no CI para a contagem de erros não poder crescer, e aí tipamos módulo por módulo começando pelas fronteiras onde os dados entram. O modo estrito veio depois, por pacote, usando overrides por módulo no pyproject. Seis meses depois ele pegou um None sendo desreferenciado num caminho de pagamento durante o review em vez de às duas da manhã. O outro benefício que as pessoas subestimam é o suporte do editor, porque com tipos de verdade renomear e ir para a definição funcionam mesmo, o que muda o quanto o time se dispõe a refatorar qualquer coisa.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você tipa uma função que retorna tipos diferentes?
- Qual é a diferença entre Any e object?
- Onde o mypy deixa a desejar?
Mais perguntas para Desenvolvedor Python
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas