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

"NoneType' object is not callable"

Meu código está ok, funcionando bem, mas quando chamo as properties "tamanho" ou "listagem", além de imprimir no console o tamanho e a listagem de programas, ocorre um erro: NoneType' object is not callable Não sei o que está acontecendo...

Código:

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

    @property
    def listagem(self):
        for i in self._programas:
            print(i)

    @property
    def tamanho(self):
        print("Tamanho da playlist:", len(self._programas), "itens")

Vingadores = Filme("vingadores", 2015, 190)
tmep = Filme("Todo mundo em pânico", 1999, 100)
Atlanta = Serie("Atlanta", 2018, 3)

fim_de_semana = [Atlanta, Vingadores, tmep]
playlist_fim_de_semana = Playlist("Playlist para o im de semana", fim_de_semana)

playlist_fim_de_semana.tamanho()

Isso aparece no console:

 Tamanho da playlist: 4 itens
Traceback (most recent call last):
  File "C:\Users\Usuario\Documents\alura\py\Python 4 Orientação a objetos\Aula 4\OO2 - A4.py", line 62, in <module>
    playlist_fim_de_semana.tamanho()
TypeError: 'NoneType' object is not callable

Process finished with exit code 1  
2 respostas
solução!

Oii Lucas, como você está?

Isso está ocorrendo por causa dos parênteses que você está utilizando para chamar a property, neste trecho: playlist_fim_de_semana.tamanho(). O uso dos parênteses é chamar algum método. Ao utilizarmos uma property não precisamos colocá-los. A correção fica da seguinte forma:

playlist_fim_de_semana.tamanho

Qualquer dúvida estou por aqui, tá bom?

Abraços e bons estudos!

Muito obrigado, abraço!