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

[Bug] TypeError: Playlist() takes no arguments

Quando tento rodar o código aparece este erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue meu código abaixo:

class Programa:

    def __init__(self, nome, ano):
        self._nome = nome.title()
        self.ano = ano
        self._likes = 0

    @property
    def likes(self):
        return self._likes

    def dar_likes(self):
        self._likes += 1

    @property
    def nome(self):
        return self._nome

    @nome.setter
    def nome(self, nome):
        self._nome = nome

    def __str__(self):
        return f'Nome: {self.nome} - Likes: {self.likes}'

class Filme(Programa):

    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao

    def __str__(self):
        return f'Nome: {self.nome} - {self.duracao} min - Likes: {self.likes}'

class Serie(Programa):
    def __init__(self, nome, ano, temporadas):
        super().__init__(nome, ano)
        self.temporadas = temporadas

    def __str__(self):
        return f'Nome: {self.nome} - {self.temporadas} temporadas - Likes: {self.likes}'

class Playlist():
    def __int__(self, nome, programas):
        self.nome = nome
        self._programas = programas

    @property
    def listagem(self):
        return self._programas

    @property
    def tamanho(self):
        return len(self._programas)



vingadores = Filme('vingadores - guerra infinita', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)
tmep = Filme('todo mundo em panico', 1999, 100)
demolidor = Serie('demolidor', 2016, 2)

vingadores.dar_likes()
vingadores.dar_likes()
vingadores.dar_likes()
vingadores.dar_likes()
tmep.dar_likes()
tmep.dar_likes()
tmep.dar_likes()
demolidor.dar_likes()
demolidor.dar_likes()
demolidor.dar_likes()
demolidor.dar_likes()
demolidor.dar_likes()
atlanta.dar_likes()
atlanta.dar_likes()
atlanta.dar_likes()


#print(f'Nome: {atlanta.nome} - Likes: {atlanta.likes}')
#print(f'Nome: {vingadores.nome} - Likes: {vingadores.likes}')

listinha = [atlanta, vingadores, tmep, demolidor]
minha_playlist = Playlist('fim de semana', listinha)

print(f'Tamanho: {len(minha_playlist.listagem)}')

for programa in minha_playlist.listagem:
    print(programa)

Eu copiei o código de outro colega q está aqui no fórum e o erro foi o mesmo! Se alguem puder me ajudar a entender e corrigir, não entendo pq diz que a classe Playlist não aceita argumentos! Obrigada

2 respostas
solução!

Olá Raissa dois detalhes bem bobinhos. Como vc não está realizando herança em Playlist, vc não deve usar os parênteses, e segundo, seu método init, na verdade está declarado como uma dunder int.

Muito obrigada!! Detalhes ne kkkkkkkk