No contexto do Python, analise o script a seguir. ... p1 =...

Próximas questões
Com base no mesmo assunto
Q2287681 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. 

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a Letra A. Vamos entender o porquê com um pouco de contexto sobre classes e objetos em Python.

Em Python, uma classe é um tipo de dado definido pelo usuário que funciona como um modelo para objetos, instâncias dessa classe. Uma classe encapsula dados para o objeto (atributos) e métodos para operar nesses dados.

O método especial __init__ é chamado de construtor e é utilizado para inicializar os atributos do novo objeto criado com a classe, ou seja, é automaticamente invocado quando uma nova instância de uma classe é criada.

A alternativa A está correta porque segue o padrão de definição de uma classe em Python:

  • Utiliza a palavra-chave class para iniciar a definição da classe.
  • Define o método especial __init__, que é o construtor da classe.
  • O parâmetro self é uma referência à instância atual da classe e é usado para acessar variáveis que pertencem à classe.
  • Atribui os parâmetros recebidos nome e cidade aos atributos da instância self.nome e self.cidade, respectivamente.

Portanto, o script correto que define a classe Pessoa, capaz de criar um objeto p1 com atributos nome e cidade acessíveis, como mostrado no código do enunciado, é:

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

As outras alternativas incorretas têm os seguintes problemas:

  • Alternativa B: Não utiliza a palavra-chave def para definir o construtor, além de usar uma notação incorreta para os atributos.
  • Alternativa C: Tenta definir a classe com parâmetros, o que não é válido em Python, e faltam as definições de método dentro da classe.
  • Alternativa D: Falta a palavra-chave def para definir o método, bem como os parâmetros necessários, incluindo a referência à própria instância (self).
  • Alternativa E: Usa uma sintaxe incorreta para a definição do método com a palavra-chave def, e os nomes dos parâmetros não correspondem aos usados no enunciado.

Espero que essa explicação tenha te ajudado a entender melhor sobre a definição de classes em Python e como instanciar objetos com atributos específicos.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Dos mesmos criadores de "literalidade da lei", apresentamos "literalidade do exemplo".

https://www.w3schools.com/python/python_classes.asp

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo