Pular para o conteúdo

Serviço de Seleção do Pessoal da Marinha (SSPM) · Marinha do Brasil 2025

Questão 48 — Programação: Python — Classes, getattr e setattr

Programação Python — Classes, getattr e setattr

Serviço de Seleção do Pessoal da Marinha (SSPM) 2025

Marinha do Brasil · Quadro Técnico do Corpo Auxiliar da Marinha (CP-T) — Informática · Caderno Amarela

Gabarito disponível

Assinale a opção que apresenta o resultado da execução do código Python 3.8 abaixo.

class teste:
a=4;
def __init__(self,x,y,z):
a=x+y+z
x=teste(1,2,10)
y=getattr(x,'a')
setattr(x, 'a', y**2)
print(x.a)
Selecione uma alternativa

Resolução comentada

O atributo de classe a=4 é elevado ao quadrado, resultando em 16.

Em __init__, a=x+y+z cria apenas uma variável local, que não altera o atributo de classe a=4. Então getattr(x,'a') devolve 4 (o atributo de classe), e setattr cria o atributo de instância a=16. O print mostra 16.

Análise das alternativas

B, D e E) Supõem que a soma 13 seria atribuída ao atributo, mas ela fica numa variável local. C) O atributo existe como atributo de classe.

Referência: Python: atributos de classe e de instância, getattr e setattr.

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: A

Fonte: Gabarito preliminar: Gabarito final retificado — Informática — página 6