1
resposta

Meu código esta quebrando

criei a class playlist mais não esta sendo reconhecida quando estou criando o objeto diz que não resolveu


class Playlist(list):
    def __init__(self,nome,programas):
        self.nome = nome
        self.programas = programas



    vingadores = Filme('vingadores - guerra infinita',2018,160)

    tmep = Filme('todo mndo em panico',2007,100)

    demolido = Serie('demolidor',2015,2)

    vingadores.dar_like()
    demolido.dar_like()
    demolido.dar_like()
    demolido.dar_like()
    demolido.dar_like()
    tmep.dar_like()

    atlanta = Serie('atlanta',2018,2)
    atlanta.dar_like()
    atlanta.dar_like()

    filmes_e_series = [vingadores, atlanta, demolido ,tmep]

    fim_de_Semana = Playlist('Fim de semana',filmes_e_series)

    for program in fim_de_Semana:
        print(program)
1 resposta

Olá Leandro, como você está?

Ao executar o seu código, o erro que aparece é NameError: name 'Playlist' is not defined e isso ocorre devido a problemas de indentação (espaçamento) no código, ou seja, o recuo para indicar a hierarquia das instruções no código. Sendo assim, é necessário recuar as criações dos objetos para que fiquem alinhados verticalmente à classe Playlist. Da forma como está, os objetos estão sendo criados dentro da classe Playlist. Segue um exemplo ilustrativo deste problema:

Imagem que mostra o erro de alinhamento do código, em relação a como está e como deve ficar

Além disso, na classe Playlist é necessário invocar o método super() para passarmos a lista de programas:

super().__init__(programas)

O código corrigido com os adendos acima segue abaixo:

class Playlist(list):
    def __init__(self,nome,programas):
        self.nome = nome
        super().__init__(programas)



vingadores = Filme('vingadores - guerra infinita',2018,160)

tmep = Filme('todo mndo em panico',2007,100)

demolido = Serie('demolidor',2015,2)

vingadores.dar_like()
demolido.dar_like()
demolido.dar_like()
demolido.dar_like()
demolido.dar_like()
tmep.dar_like()

atlanta = Serie('atlanta',2018,2)
atlanta.dar_like()
atlanta.dar_like()

filmes_e_series = [vingadores, atlanta, demolido ,tmep]

fim_de_Semana = Playlist('Fim de semana',filmes_e_series)

for program in fim_de_Semana:
    print(program)

Resultado:

Nome: Vingadores - Guerra Infinita - 160 min - Likes: 1
Nome: Atlanta - 2 temporadas - Likes: 2
Nome: Demolidor - 2 temporadas - Likes: 4
Nome: Todo Mndo Em Panico - 100 min - Likes: 1

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

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!