Olá, eu fiz um código onde tenho uma classe mãe, duas classes filhas que herdam da classe mãe, e uma classe filha que herda das duas classes filhas da classe mãe, eu fiz a classe que herda das duas utilizar um atributo da classe filha 1, e um método da classe filha 2, porem quanto executo aparece este um erro.
class Mother:
def __init__(self, nome, idade, funcao):
self._nome = nome
self._idade = idade
self._funcao = funcao
@property
def atributo1(self):
return self._nome
@property
def atributo2(self):
return self._idade
@atributo1.setter
def atributo1(self, novo_valor):
self._nome = novo_valor
@atributo2.setter
def atributo2(self, novo_valor):
self._idade = novo_valor
@property
def atributo3(self):
return self._funcao
@atributo3.setter
def atributo3(self, novo_atributo):
self._funcao = novo_atributo
def apresentar(self):
return print(f'Olá sou {self._funcao}, mãe das classes filhas, minha função é {self._funcao}')
def exibir(self):
return print(f'Nome: {self._nome}, idade: {self._idade}')
# ----------------------------------------------------------------------------------]
class Daughter(Mother):
def __init__(self, _nome, _idade, _funcao, cozinhar):
super().__init__(_nome, _idade, _funcao)
self._cozinhar = cozinhar
@property
def cozinhar(self):
return self._cozinhar
@cozinhar.setter
def cozinhar(self, nova_comida):
self._cozinhar = nova_comida
def apresentar(self):
return print(f'Olá sou {self._nome} filha da classe mãe, minha função é: {self._funcao}')
def exibir(self):
return print(f'Nome: {self._nome}, idade: {self._idade}, Função: {self._funcao}')
def bom_dia(self):
return print(f'Bom dia! meu nome é {self._nome}')
# ----------------------------------------------------------------------------------]
class Son(Mother):
def __init__(self, _nome, _idade, _funcao, cacar):
super().__init__(_nome, _idade, _funcao)
self._cacar = cacar
@property
def cacar(self):
return self._cacar
@cacar.setter
def cacar(self, nova_caca):
self._cacar = nova_caca
def apresentar(self):
return print(f'Olá sou {self._nome} filho da classe mãe, minha função é: {self._funcao}')
def exibir(self):
return print(f'Nome: {self._nome}, idade: {self._idade}, Função: {self._funcao}, devo caçar um {self._cacar}')
# ----------------------------------------------------------------------------------]
class Children(Son, Daughter):
def apresentar(self):
return print(f'Olá sou {self._nome} filho do filho de Mother, aprendi com meu irmão a caçar, com minha irmã a dar bom dia! minha função é {self._funcao}, Eu estou aprendendo a caçar {self._cacar}')
def exibir(self):
return print(f'Nome: {self._nome}, idade: {self._idade}, Função: {self._funcao}')
# ----------------------------------------------------------------------------------]
joao = Mother('João', 43, 'Vasculhar')
joao.exibir()
maria = Daughter('Maria', 21, 'Cortar lenha', 'Miojo')
maria.exibir()
maria.atributo3 = 'Limpar a lareira'
maria.exibir()
marcio = Son('Marcio', 22, 'Caçar', 'Javali')
marcio.apresentar()
marcio.exibir()
diego = Children('Diego', 15, 'Vigiar', 'Cervo')
diego.bom_dia()
Saída: