Pular para o conteúdo principal

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

ProgramaçãoPython
Código
fg068157
Banca
FGV
Órgão
SEDUC-SP
Ano
2023
Nível
Superior
Cargo
Professor de Ensino Fundamental e Médio (Educação Profissional) - Eixo 5 - Informação e Comunicaçã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.
  1. Aclass Pessoa:def init(self, nome, cidade):self.nome = nomeself.cidade = cidade
  2. Bclass Pessoa:new (self, nome, cidade):.nome = nome.cidade = cidade
  3. Cclass Pessoa (nome, cidade):self.nome = nomeself.cidade = cidade
  4. Dclass Pessoainit (nome, cidade)
  5. Eclass Pessoa (p1, p2):def self:self.nome = p1self.cidade = p2
Revelar gabarito e comentário

GabaritoA — class Pessoa: def __init__(self, nome, cidade): self.nome = nome self.cidade = cidade

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”.

Python – Definição de classe e método construtor

Gabarito: letra A. A classe Pessoa deve ser definida com o método especial __init__, que é o construtor da classe. No Python, o construtor recebe self como primeiro parâmetro (referência ao próprio objeto) e os demais parâmetros necessários para inicializar os atributos. Dentro do método, os atributos são criados com self.atributo = valor. A alternativa A segue exatamente essa sintaxe:

class Pessoa:
    def __init__(self, nome, cidade):
        self.nome = nome
        self.cidade = cidade

Ao instanciar p1 = Pessoa("John", 36), o Python chama automaticamente __init__, atribuindo "John" a self.nome e 36 a self.cidade. Isso permite que print(p1.nome) e print(p1.cidade) funcionem.


Alternativa A — ✅ Correta ⟵ GABARITO

class Pessoa:
    def __init__(self, nome, cidade):
        self.nome = nome
        self.cidade = cidade

Sintaxe perfeitamente correta. O método __init__ é definido com self e os parâmetros nome e cidade. As atribuições usam self.nome = nome e self.cidade = cidade, criando os atributos na instância. Tudo em conformidade com a documentação oficial do Python.


Alternativa B — ❌ Incorreta

class Pessoa:
    new (self, nome, cidade):
        .nome = nome
        .cidade = cidade

Erro: o método construtor do Python é __init__ (com dois underlines), não new. Além disso, a atribuição .nome = nome está incorreta — faltou o self. antes do ponto. A notação correta é self.nome = nome.


Alternativa C — ❌ Incorreta

class Pessoa (nome, cidade):
    self.nome = nome
    self.cidade = cidade

Erro: os parâmetros não devem vir após o nome da classe. A definição de classe é class Nome: (dois pontos) e os parâmetros vão no construtor __init__. Além disso, as instruções self.nome = nome estão soltas no corpo da classe, sem estarem dentro de um método — isso não é permitido.


Alternativa D — ❌ Incorreta

class Pessoa
    init (nome, cidade)

Erro: falta o : após class Pessoa. O método init não é o nome correto; deve ser __init__ com dois underlines. Também falta self como primeiro parâmetro e a palavra-chave def para definir o método. Não há atribuição alguma.


Alternativa E — ❌ Incorreta

class Pessoa (p1, p2):
    def self:
        self.nome = p1
        self.cidade = p2

Erro: parâmetros não são permitidos na definição da classe. def self é inválido — o método deve ter um nome como __init__ e self é o primeiro parâmetro, não um nome de método. As atribuições usam p1 e p2 que não correspondem aos parâmetros do construtor esperados.


PEGA ESSA DICA!

No Python, para definir uma classe com atributos iniciais, lembre-se sempre do padrão:

  • class NomeDaClasse:

  • def __init__(self, parametro1, parametro2):

  • self.atributo1 = parametro1

  • self.atributo2 = parametro2

O self é obrigatório e representa a instância. Os atributos criados com self.atributo ficam disponíveis para o objeto.

Gabarito: letra A.

Link permanente: /questoes/fg068157