Olá tudo bem? Minha dúvida é referente a herança. É possivel herdar trechos de codigo de outra classe?
No exemplo abaixo tenho uma Super Class Programa ela possui um método str que retorna uma string de nome + ano + like de algum programa.
Na classe filha Filme que herda da classe Programa temos acesso ao método str que herdamos, ate ai tudo ótimo. O que gostaria é de anexar uma string junto ao método que é herdado. Pois herdamos uma string nome + ano + like gostaria de colocar a duração que é um atributo somente da classe filha, é possivel fazer? Coloquei no exemplo abaixo.
class Programa(): # Super Class
def __init__(self, nome: str, ano: int):
self._nome = nome.title()
self.ano = ano
self._likes: int = 0
@property
def likes(self) -> int:
return self._likes
def dar_like(self) -> None:
self._likes += 1
@property
def nome(self) -> str:
return self._nome
@nome.setter
def nome(self, novo_nome: str) -> None:
self._nome = novo_nome.title()
def __str__(self) -> str:
nome: str = f'\nNome: {self._nome}\n'
ano: str = f'Ano: {self.ano}\n'
like: str = f'Likes: {self._likes} Likes\n'
return nome + ano + like
class Filme(Programa):
def __init__(self, nome: str, ano: int, duração: int):
# com esta ação estamos usando nome e ano da classe mãe Programa
super().__init__(nome, ano)
self.duração = duração
def __str__(self) -> str:
duração: str = f'Duração: {self.duração} min\n'
return # duvida aqui!!! Seria possível herdar da class Programa o método __str__ e anexar ao método __str__ da class filme somente a duração? Assim não repetiriamos codigo.
Desde já agradeço a ajuda. Obrigado.