Não entendi muito bem isso! Ele altera a instância dada por algum outro valor?
Não entendi muito bem isso! Ele altera a instância dada por algum outro valor?
Oi Gustavo! Tudo bem?
O @property em Python é um decorador que transforma um método de classe em um atributo "somente leitura". Isso significa que você pode acessar o método como se fosse um atributo, sem a necessidade de usar parênteses. Ele não altera a instância diretamente, mas sim a forma como você interage com os métodos e atributos.
Por exemplo, imagine que você tem uma classe Retangulo que possui atributos de largura e altura, e você quer calcular a área. Usando @property, você pode fazer algo assim:
class Retangulo:
def __init__(self, largura, altura):
self.largura = largura
self.altura = altura
@property
def area(self):
return self.largura * self.altura
retangulo = Retangulo(5, 3)
print(retangulo.area) # Saída: 15
Nesse caso, area é um método, mas você o acessa como se fosse um atributo. Isso não altera a instância, mas permite que você obtenha a área de forma mais natural e intuitiva.
Espero ter ajudado e bons estudos!