Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

duvida com objeto.programas

Crei dois objetos assim como o código abaixo:

arrival = Filme("Arrival",2015,200)
naruto = Serie("Naruto",2003,17)

E posteriormente criei uma lista

animes = Playlist("animes",[naruto,arrival])

Utilizando o for in ele funcionou normalmente

for programas in animes :
    print(programas)

Serie: Naruto, Ano: 2003, Temporadas: 17, Likes: 0
Filme: Arrival, Ano: 2015, Duração: 200 ,Likes: 0

O problema é que ao tentar chamar os programas da minha lista animes ele retornou um erro

animes.programas
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'Playlist' object has no attribute 'programas'

Se eu tento usar o animes.nome ele retorno o nome da minha playlist normalmente mas ao tentar fazer isso com o programas é apresentado o erro acima, alguém consegue me explicar o motivo ?

Abaixo o código da classe Playlist :

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

    def tamanho(self):
        return len(self.programas)
1 resposta
solução!

A forma como você está tendo acessar está errada, o própio animes já e a lista é como se você estivesse instanciando uma lista, porém adicionando outras funcionalidades.

animes = [naruto, arrival]

É diferente de você criar a classe playlist assim:

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

    def tamanho(self):
        return len(self.programas)

Nesse caso você acessaria da forma como está tentando acessar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software