não entendi muito bem o uso do property
não entendi muito bem o uso do property
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!