2
respostas

porque o meu da erro

baixei o arquivo do curso e porque da este erro aqui??

class rograma:
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 __init__(self, nome, programas):
        self.nome = nome
        self._programas = programas

def __getitem__(self, item)
    return self._programas[item]

def __len__(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()
    atlanta.dar_likes()
    atlanta.dar_likes()
    tmep.dar_likes()
    tmep.dar_likes()
    demolidor.dar_likes()
    demolidor.dar_likes()

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

    for programa in minha_playlist:
        print(programa)

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


    C:\Users\alyssa\PycharmProjects\jogosb\Scripts\python.exe C:/Users/alyssa/AppData/Local/Temp/Rar$DRa20696.6919/modelos.py
      File "C:\Users\alyssa\AppData\Local\Temp\Rar$DRa20696.6919\modelos.py", line 47
        def __getitem__(self, item)
                           ^
    SyntaxError: invalid syntax

    Process finished with exit code 1
2 respostas

Olá Israel,

Está faltando : no final do método getitem

def __getitem__(self, item)
    return self._programas[item]

ao invés de

def __getitem__(self, item):
    return self._programas[item]

Outro ponto que observei é que sua classe está nomeada como " rograma ", é isso mesmo que quis dizer?

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

Olá, acho que pode ser também a identação do código, só um exemplo abaixo

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

e devira ser

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