1
resposta

[Dúvida] property

não entendi muito bem o uso do property

1 resposta

Bom dia, Mariana! Joia?

O property é um recurso do Python que nos permite modificar como um atributo é lido ou modificado. No contexto da aula, foi usado para alterar a maneira como o atributo ativo é apresentado.

Quando você define um método como uma property usando o decorador @property, você está dizendo ao Python que esse método deve ser acessado como um atributo, sem a necessidade de parênteses.

No exemplo da aula, o ativo é um atributo que indica se o restaurante está ativo ou não (verdadeiro ou falso). Mas para tornar mais legível, utilizamos a property para retornar um emoji em vez de um valor booleano. Veja o trecho de código:

@property
def ativo(self):
    return '⌧' if self._ativo else '☐'

Neste caso, se o atributo _ativo for verdadeiro, retornará o emoji '⌧', caso contrário, retornará o emoji '☐'. Assim, quando você acessa restaurante.ativo, em vez de obter True ou False, você obtém o emoji correspondente.

Além disso, é importante notar que o atributo ativo foi alterado para _ativo, indicando que é um atributo protegido, ou seja, não deve ser alterado diretamente. Isso é uma convenção comum em Python para indicar que um atributo deve ser considerado "privado" e não deve ser acessado diretamente.

Espero ter esclarecido melhor o uso do property e se você tiver mais dúvidas, estarei à disposição.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.