← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

No contexto do Python, analise o script a seguir. ... p1 = Person("John", 36) print(p1.nome) print(p1.cidade) Assinale a correta definição da classe Pessoa que completa o script.

Gabarito: A

Em Python, quando voce cria uma classe para representar um objeto, o ponto de partida costuma ser o metodo especial __init__. Ele funciona como o "construtor" da classe e recebe os parametros usados para inicializar os atributos do objeto. No script, o objeto p1 precisa ter os atributos nome e cidade para que print(p1.nome) e print(p1.cidade) funcionem sem erro. A classe correta, portanto, deve definir __init__(self, nome, cidade) e atribuir esses valores a self.nome e self.cidade. O self representa a instancia atual, ou seja, o proprio objeto que esta sendo criado. Sem ele, o Python nao sabe onde guardar os dados do objeto. A alternativa A faz exatamente isso: define a classe, cria o metodo __init__ com os parametros certos e associa os valores aos atributos da instancia. Por isso, quando p1 = Person("John", 36) for executado, o objeto tera os atributos esperados para as linhas seguintes. As demais alternativas erram por forma ou sintaxe. Em Python, nomes como new, init sem os dois underlines, ou uma classe escrita como se fosse uma funcao, nao servem para inicializacao de objeto. Em prova, a banca gosta muito de testar se voce reconhece a estrutura basica de uma classe com atributos de instancia.

Continue treinando

Questões relacionadas