Apesar de o professor durante a aula ter substituído o private por protected, aqui rodou normal deixando private mesmo:
class Programa:
def __init__(self, nome, ano):
self.__nome = nome.title()
self.ano = ano
self.__likes = 0
@property
def nome(self):
return self.__nome
@nome.setter
def nome(self, nome):
self.__nome = nome.title()
@property
def likes(self):
return self.__likes
def dar_like(self):
self.__likes += 1
class Filme(Programa):
def __init__(self, nome, ano, duracao):
super().__init__(nome, ano)
self.duracao = duracao
class Serie(Programa):
def __init__(self, nome, ano, temporada):
super().__init__(nome, ano)
self.temporada = temporada
vingadores = Filme('vingadores - guerra infinita', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)
vingadores.dar_like()
vingadores.dar_like()
vingadores.dar_like()
atlanta.dar_like()
atlanta.dar_like()
print(f'Nome: {vingadores.nome} - Likes: {vingadores.likes}')
print(f'Nome: {atlanta.nome} - Likes: {atlanta.likes}')
A saída foi:
"C:\Program Files\Python310\python.exe" C:\Users\usuario\PycharmProjects\playlist\modelo.py
Nome: Vingadores - Guerra Infinita - Likes: 3
Nome: Atlanta - Likes: 2
Process finished with exit code 0
Alguma coisa errada por baixo que eu não consigo entender ou não teria problema deixar private mesmo?