No contexto do Python, analise o script a seguir. ... p1 =...
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 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