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