Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

takes no arguments

Eu não sei onde estou errando!!

class Funcionario:
    def __int__(self, nome):
        self.nome = nome

    def registra_horas(self, horas):
        print('Horas registradas.')

    def mostrar_tarefas(self):
        print('Fez muita coisa...')

class Caelum(Funcionario):
    def mostrar_tarefas(self):
        print('Fez muita coisa, Caelumer!')

    def buscar_cursos_do_mes(self, mes=None):
        print(f'Mostrando cursos - {mes}'if mes else 'Mostrando cursos desse mês')

class Alura(Funcionario):
    def mostrar_tarefas(self):
        print('Fez muita coisa, Alurete!')

    def buscar_perguntas_sem_resposta(self):
        print('Mostrando perguntas não respondidas do fórum!')

class Hipster:
    def __str__(self):
        return f'Hipster, {self.nome}'


class Junior(Alura):
    pass

class Pleno(Alura, Caelum, Hipster):
    pass

raissa = Junior('Raissa')
raissa.buscar_perguntas_sem_resposta()

luan = Pleno('Luan')
luan.buscar_perguntas_sem_resposta()
luan.buscar_cursos_do_mes()
luan.mostrar_tarefas()

print(luan)

Resultado: raissa = Junior('Raissa') TypeError: Junior() takes no arguments

Se eu retiro o 'Raissa' a saída cai para o Pleno:

luan = Pleno("Luan") TypeError: Pleno() takes no arguments

Se eu retiro os dois argumentos ('Raissa' e 'Luan'):

return f'Hipster, {self.nome}' AttributeError: 'Pleno' object has no attribute 'nome'

2 respostas
solução!

Olá Raissa, tudo bem com você?

O erro, TypeError: Junior() takes no arguments, está sendo levantado devido à declaração do método inicializador da classe Funcionario da seguinte forma: __int__ (sem um i) no lugar de __init__ (com dois I), por isso eles não estão sendo reconhecidos como método inicializador que será responsável por definir quais argumentos a classe recebe no momento da criação de um objeto.

Peço que realize a mudança do método inicializador da classe Funcionario, mudando para __init__, como apresentado abaixo:

class Funcionario:
    def __init__(self, nome):
        self.nome = nome

Após a mudança aplicada, salve o arquivo e execute-o.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Ahhh o init kkkkk eu sempre como esse i kkkkk obrigada!