Exercícios
Avalie seus conhecimentos sobre type hints e verificação estática com mypy em Python. Este questionário aborda anotações de parâmetros e retornos, listas tipadas, Union com str | int e None, diferenças entre Any e object, estreitamento de tipos com isinstance, tipos genéricos, Protocol, TypedDict, Callable, Final, Never, @overload e cast. Entenda como a tipagem estática ajuda a identificar possíveis erros antes da execução, melhora a legibilidade do código e torna projetos Python mais seguros e fáceis de manter.
Responda às questões abaixo e confira a explicação de cada resposta.
0/15 respondidas
Áudio automático ativado: as próximas questões serão lidas ao clicar em Continuar.
Type hints descrevem os tipos esperados e auxiliam IDEs e verificadores como o mypy. Por padrão, eles não convertem valores nem impõem tipos em tempo de execução.
As anotações não são verificadas automaticamente pelo interpretador. A função será executada, embora suas operações internas ainda possam produzir um erro ou um resultado inesperado.
Em Python 3.10 ou superior, str | None representa uma união entre texto e None. Ela equivale a Optional[str].
list[int] é a sintaxe moderna para parametrizar uma lista com o tipo de seus elementos. A forma list(int) é uma chamada, não uma anotação genérica.
A função espera uma lista de inteiros, mas a segunda chamada fornece uma lista de strings. Uma lista vazia pode ser aceita nesse contexto por inferência de tipo.
Any funciona como uma saída da verificação estática. Um valor object pode conter qualquer objeto, mas seu tipo precisa ser refinado para acessar operações específicas com segurança.
Um TypeVar relaciona tipos em uma assinatura genérica. Ele pode indicar que o retorno possui o mesmo tipo concreto recebido como argumento.
Protocol oferece tipagem estrutural: importa se o objeto possui os membros com assinaturas compatíveis, e não necessariamente se declarou herança do protocolo.
TypedDict permite modelar dicionários com estrutura conhecida, especificando nomes de chaves e tipos associados. Ele é voltado principalmente à análise estática.
O teste isinstance realiza o estreitamento de tipo, também chamado de type narrowing. No ramo verdadeiro, o verificador pode concluir que valor é str.
Em Callable, a lista interna descreve os tipos dos parâmetros, enquanto o último tipo representa o retorno. Nesse caso, são dois argumentos int e um resultado str.
Final comunica que um nome não deve receber outro valor. Essa restrição é verificada por ferramentas estáticas e não garante, sozinha, imutabilidade profunda ou bloqueio em tempo de execução.
Never indica que a execução não produz um retorno normal. Uma função que sempre lança uma exceção é um exemplo. Para uma função que termina e retorna ausência de valor, usa-se None.
@overload descreve relações alternativas entre argumentos e retornos para o verificador. As declarações sobrecarregadas são seguidas por uma implementação real que trata os casos em execução.
typing.cast orienta o verificador estático, mas não converte nem valida o objeto em tempo de execução. O valor original é devolvido sem alteração.

Curso GratuitoAnálise e projeto de sistemas
11h02m
9 exercícios

Curso GratuitoPython do Zero ao Avançado
28h22m
54 exercícios

Curso GratuitoProgramação orientada a objeto usando Java
11h56m
10 exercícios

Curso GratuitoProgramação em C
11h21m
22 exercícios

Curso GratuitoRuby on Rails para iniciantes
16h31m
32 exercícios

Curso GratuitoJava
27h43m
62 exercícios

Curso GratuitoProgramação em Python
10h21m
27 exercícios

Curso GratuitoEngenharia de software
7h58m
24 exercícios
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks