Prezados, boa tarde,
Fiz as modificações com o conceito de herança, porém quando faço o teste no console através do Pycharm, não consigo acessar o "@nome.setter" para modificar o nome do filme ou série. Segue código:
class Programa():
def __init__(self,nome,ano):
self._nome = nome.title()
self._ano = ano
@property
def nome(self):
return self._nome
@nome.setter
def nome(self,novo_nome):
self._nome = novo_nome
class Filme(Programa):
def __init__(self, nome,ano,duracao):
super(Filme, self).__init__(nome,ano)
self._duracao = duracao
self._like = 0
@property
def like(self):
return self._like
@property
def duracao(self):
return self._duracao
def dar_like(self):
self._like =+ 1
def info_filme(self):
print("O nome do filme é",f'{self.nome}',"e tem duração de",f'{self.duracao} minutos',
f'- Total de like:'
f' {self.like}')
class Serie(Programa):
def __init__(self,nome,ano,temporadas):
super(Serie, self).__init__(nome, ano)
self._temporadas = temporadas
self._like = 0
@property
def like(self):
return self._like
@property
def temporadas(self):
return self._temporadas
def info_serie(self):
print("O nome da serie é",f'{self.nome}',"e tem duração de",f'{self.temporadas} temporadas',
f'- Total de like: {self.like}')
def dar_like(self):
self._like =+ 1
Por exemplo, se eu criar o seguinte objeto no console do pycharm: x = Filme('Entrando numa fria', '2000', 2). E depois tentar modificar o nome do filme com o seguinte código:
x.nome('Eu, eu mesmo e Irene'). O console dá um erro de atributo. Contudo se eu tentar mudar o nome "x.nome = 'Eu, eu mesmo e Irene'" ou "x.nome = 'Eu, eu mesmo e Irene'" a modificação é feita. Ou seja, eu não consigo alterar pelo getter.
Desde ja obrigado e se for um erro conseitual meu peço desculpas pelo transtorno.