# Exemplo de classe utilizando um mixin
# Um mixin é um comportamento que será utilizado em várias classes sem distinção
class Hipster:
def __str__(self):
return f'Hipster, {self.nome}'
# Classe Funcionário herdará o comportamento da classe Hipster
class Funcionario(Hipster):
def __init__(self, nome):
self.nome = nome
def registra_horas(self, horas):
print('Horas registradas...')
def mostrar_tarefas(self):
print('Fez muita coisa...')
# Classe Caelum herdará Funcionário
class Caelum(Funcionario):
def mostrar_tarefas(self):
print('Fez muita coisa, Caelumer')
def busca_cursos_do_mes(self, mes=None):
print(f'Mostrando cursos - {mes}' if mes else 'Mostrando cursos desse mês')
# Classe Alura herdará Funcionário
class Alura(Funcionario):
# def mostrar_tarefas(self):
# print('Fez muita coisa, Alurete!')
def busca_perguntas_sem_resposta(self):
print('Mostrando perguntas não respondidas do fórum')
# Classe Junior herdará Alura que herda Funcionário
class Junior(Alura):
pass
# Classe Pleno herdará Alura e Caelum que herdam Funcionário
class Pleno(Alura, Caelum):
pass
# Classe Senior herdará Alura e Caelum que herdam Funcionário
# class Senior(Alura, Caelum):
# pass
# Chamando e atribuindo valores os métodos das classes e mostrando o resultado
jose = Junior('José')
jose.busca_perguntas_sem_resposta()
jose.mostrar_tarefas()
print(jose)
luan = Pleno('Luan')
# luan = Senior('Luan')
luan.busca_perguntas_sem_resposta()
luan.busca_cursos_do_mes()
luan.mostrar_tarefas()
print(luan)
# Resultado
[Running]
Mostrando perguntas n�o respondidas do f�rum
Fez muita coisa...
Hipster, José
Mostrando perguntas n�o respondidas do f�rum
Mostrando cursos desse m�s
Fez muita coisa, Caelumer
Hipster, Luan
[Done] exited with code=0 in 0.132 seconds