1
resposta

Quando usar o @property?

Caros,

Fiquei na dúvida de quando usar uma função com o property.

Imaginei a principio que seria sempre que fosse declarado uma variável na função, mas vejo no exemplo abaixo que não é assim.

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

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

Você deve usar o property apenas quando não quiser usar os parenteses na hora de chamar o método. exemplo sem o property:

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


    def listagem(self):
        return self._programas

best_playlist = Playlist('Summer eletrohits', 'Musica elétronica')
print(best_playlist.listagem())

exemplo com o property:

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

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

best_playlist = Playlist('Summer eletrohits', 'Musica elétronica')
print(best_playlist.listagem)

Perceba que a diferença é sutil, mas no caso do property é como se eu tivesse chamando um atributo e não um método.