Vi nas aulas que existe a possibilidade de transformar um método de classe em uma propriedade que pode ser um atributo acessível com o @property.
Mas ainda não compreendi com clareza o que isto faz. Gostaria de uma explicação um pouco diferente disso e entender quais os benefícios de utilizar esta funcionalidade na prática para outras aplicações.
Se possível, gostaria que fizesse um paralelo com o @classmethod também, para entender quando seria necessário utilizar.
Abaixo, estrutura do último código que executei com esta função também.
class Pessoa:
def __init__(self, nome='', idade=0, profissao=''):
self.nome = nome.title()
self.idade = idade
self.profissao = profissao
def __str__(self):
return f'{self.nome} com idade de {self.idade} anos e profissão {self.profissao}.'
def aniversario(self):
self.idade += 1
print(f'Feliz aniversário {self.nome}! Completou {self.idade} aninhos!')
@property
def saudacao(self):
return f'Saudações, {self.nome}! Adoramos ter um(a) {self.profissao} conosco!'