Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] duvida sobre nomenclatura de uma classe dentro de outra classe

gostaria de entender o porque o avaliacao._nota foi representeada com letra minúscula ,já que essa variável foi resgatada de uma classe existente que foi importada

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá!

A razão pela qual aparece avaliacao._nota (com letra minúscula) não tem a ver com o nome da classe, e sim com o nome do atributo do objeto.

Explicando melhor com base no seu código:

def media_avaliacoes(self):
    if not self._avaliacao:
        return 0
    soma_das_notas = sum(avaliacao._nota for avaliacao in self._avaliacao)

Nesse trecho:

  • self._avaliacao é uma lista de objetos (provavelmente de uma classe chamada Avaliacao).
  • O for avaliacao in self._avaliacao percorre essa lista, e avaliacao (com letra minúscula) é uma variável local temporária usada para cada item da lista.
  • avaliacao._nota acessa o atributo _nota de cada objeto avaliacao.

Sobre a nomenclatura:

  • A classe normalmente tem o nome com a primeira letra maiúscula (Avaliacao).

  • Mas quando você instancia um objeto dessa classe, é comum usar a variável com letra minúscula:

    class Avaliacao:
        def __init__(self, nota):
            self._nota = nota
    
    a1 = Avaliacao(5)
    print(a1._nota)  # Aqui usamos a1._nota, não Avaliacao._nota
    

Então por que avaliacao._nota?

Porque:

  • avaliacao é uma instância da classe Avaliacao, e não a classe em si.
  • _nota é um atributo da instância, normalmente definido dentro do __init__.