Considere as linhas de código, escritas na linguagem Python...

Próximas questões
Com base no mesmo assunto
Q1759891 Programação
Considere as linhas de código, escritas na linguagem Python 3 apresentadas abaixo:
1. class Oficial: 2. def__init__(self, nome, posto, idade=99); 3. self.nome = nome 4. self.posto = posto 5. self, idade = idade 6; 7. oficial = new Oficial("Joaquim Marques Lisboa", "ALTE") 8. print(oficial.nome)
É correto afirmar que para compilar e executar corretamente as linhas de código devemos:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é D - excluir o termo 'new' na linha 7.

Vamos entender o porquê. A questão envolve conceitos básicos de programação orientada a objetos na linguagem Python. Python 3, por ser orientada a objetos, usa classes para criar estruturas de dados personalizadas. Quando criamos uma instância de uma classe, usamos a sintaxe própria da linguagem.

No Python, para criar uma instância de uma classe, utilizamos o nome da classe diretamente, ou seja, oficial = Oficial("Joaquim Marques Lisboa", "ALTE"). Ao contrário de algumas outras linguagens de programação, como Java, que utilizam a palavra-chave new para instanciar objetos, em Python essa palavra não é necessária.

Alternativa D: A correção aqui é remover a palavra new da linha 7, pois ela não é parte da sintaxe de Python. Após essa correção, o código instanciará a classe corretamente.

Agora, vejamos por que as outras alternativas estão incorretas:

Alternativa A: Não há necessidade de definir o atributo self nas linhas mencionadas. O self é um parâmetro que deve ser passado para os métodos dentro da classe, mas não precisa ser definido externamente.

Alternativa B: Embora atribuir um valor para idade na linha 7 seja possível, não é necessário, pois já foi definido um valor padrão (99) no construtor da classe. Portanto, isso não corrige o erro de execução do código.

Alternativa C: Excluir o termo self da linha 2 iria causar um erro, pois self é necessário para referenciar atributos e métodos da instância atual da classe.

Alternativa E: Substituir idade=99 por idade na linha 2 removeria o valor padrão do argumento, mas isso não está relacionado ao erro de execução do código. A sintaxe está correta com o valor padrão.

Com essas explicações, espero ter clarificado não só o motivo da alternativa correta, mas também os equívocos das demais opções. A atenção a detalhes como a sintaxe correta para instanciar objetos em Python é essencial para evitar erros de execução em seus códigos.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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

a) O self representa a própria instância da classe, não faz sentido defini-la

b) Posso atribuir valor para a variável "idade", mas isso não resolverá o problema

c) O self é obrigatório na assinatura de todos os métodos não-estáticos

d) Não existe a palavra reservada "new" em Python. Se removê-la, o código funcionará

e) O "idade=99" define um valor padrão caso nada seja passado. Se removermos, teríamos que passar um valor no argumento do construtor

Clique para visualizar este comentário

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