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
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
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).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__.