Questão de Programação — Linguagens de programação — FGV 2026
- Código
- fg126183
- Banca
- FGV
- Órgão
- AL-GO
- Ano
- 2026
- Nível
- Superior
- Cargo
- Analista Legislativo - Analista de Sistemas
- AF – F – F.
- BV – F – V.
- CF – F – V.
- DF – V – F.
- EV – V – V.
GabaritoA — F – F – F.
Gabarito: letra A – F, F, F. As três afirmativas são falsas porque confundem métodos dunder com name mangling e indicadores de uso interno. Dunder methods (_init_, _str, etc.) são funções especiais que começam e terminam com dois sublinhados, usados para sobrecarga de operadores e protocolos – não servem para criar variáveis privadas. A criação de atributos pseudo-privados ocorre com o prefixo duplo sublinhado sem sufixo (_nome), que ativa o name mangling. Já o indicador "fraco" de uso interno é o prefixo simples (_nome).
Convenção | Sintaxe | Finalidade |
|---|---|---|
Dunder (método mágico) |
| Sobrecarga de operadores e protocolos (ex.: |
Name mangling |
| Criação de atributo pseudo-privado para evitar conflitos em herança |
Indicador fraco de uso interno |
| Convenção para indicar uso interno (não há transformação pelo interpretador) |
A afirmação diz que métodos dunder "são funções especiais que começam e terminam com dois sublinhados onde são criadas variáveis privadas para evitar conflitos de nomes em herança". Isso mistura dois conceitos: os dunder methods realmente começam/terminam com _, mas a criação de variáveis privadas (name mangling) é feita com apenas dois sublinhados no início (_nome), não com dois em ambos os lados. Um método dunder como _init_ não é usado para privacidade, sim para inicialização.
Diz que são métodos especiais "onde o atributo (ou método) é destinado ao uso dentro do módulo ou classe". Isso descreve o prefixo simples (_nome), que indica uso interno (weak internal use). Métodos dunder são públicos e chamados pelo interpretador em contextos específicos; não são restritos ao módulo/classe.
Afirma que métodos dunder "somente contém dois sublinhados no início (_nome), resultando em indicador “fraco” de uso interno". Na verdade, o prefixo duplo (_nome) ativa name mangling (renomeação para Classe_nome), que é um mecanismo mais forte, não fraco. O indicador fraco é o sublinhado simples (_nome), que é uma convenção, não uma transformação.
A banca mistura três convenções de sublinhado em Python: (1) dunder (_init_) = métodos especiais; (2) __nome (apenas prefixo) = name mangling para evitar conflitos em herança; (3) _nome (prefixo simples) = indicador de uso interno. As afirmativas trocam essas definições propositalmente.
Gabarito: letra A – todas as afirmativas são falsas.
Link permanente: /questoes/fg126183