Pular para o conteúdo principal

Questão de Programação — Python — FGV 2026

ProgramaçãoPython
Código
fg127414
Banca
FGV
Órgão
AL-RO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo (Tecnologia da Informação - Infraestrutura de Redes e Comunicação)
O Analista está desenvolvendo uma função em Python que recebe um objeto e invoca o método contabilizar().Assinale a alternativa que identifica o princípio do sistema de tipos de Python que permite que a função aceite qualquer objeto que implemente esse método, independentemente de herança ou declaração formal.
  1. ADuck Typing
  2. BStatic Typing
  3. CPolimorfismo Subtipo
  4. DTipagem Forte e Nominal
  5. EType Casting Explícito.
Revelar gabarito e comentário

GabaritoA — Duck Typing

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Princípio de Duck Typing em Python

Gabarito: letra A. O princípio que permite que uma função aceite qualquer objeto que implemente o método contabilizar(), independentemente de herança ou declaração formal, é o duck typing. Python adota tipagem dinâmica e forte, e o duck typing é a prática de verificar a presença de métodos e atributos no objeto em tempo de execução, sem exigir que ele pertença a uma classe específica.

A filosofia é: "se parece com um pato, nada como um pato e grasna como um pato, então é um pato". Isso significa que a função não se importa com o tipo declarado do objeto, apenas com o fato de que ele possui o método necessário.

Alternativa A — ✅ Correta ⟵ GABARITO

Duck typing é exatamente o conceito descrito. Python verifica se o objeto possui o método contabilizar() no momento da chamada, sem exigir herança ou interface formal.

Alternativa B — ❌ Incorreta

Static typing (tipagem estática) exige que os tipos sejam verificados em tempo de compilação, e as variáveis têm tipos fixos. Python é dinamicamente tipado, portanto esse princípio não se aplica.

Alternativa C — ❌ Incorreta

Polimorfismo subtipo (ou polimorfismo de inclusão) geralmente depende de herança e de uma hierarquia de classes formal. O duck typing, por sua vez, não exige herança; apenas a presença do método no objeto.

Alternativa D — ❌ Incorreta

Python possui tipagem forte (não permite coerções implícitas entre tipos incompatíveis), mas não é nominal (não depende de nomes de classe para determinar compatibilidade). A tipagem nominal seria baseada em declarações explícitas de tipo, o que não é o caso. O duck typing é um conceito ortogonal à tipagem forte/nominal.

Alternativa E — ❌ Incorreta

Type casting explícito é a conversão manual de um tipo para outro. Não tem relação com a aceitação dinâmica de objetos por método.

PEGA ESSA DICA!

Na prova, lembre-se de que o duck typing é frequentemente associado à frase "se anda como um pato...". Sempre que Python permitir usar um objeto sem verificar seu tipo declarado, apenas seus métodos, pense em duck typing.

Link permanente: /questoes/fg127414