Oi, Victor! Como vai?
Agradeço por compartilhar.
Você organizou bem a classe Pessoa, usando atributos privados, o método __str__ para exibir as informações e o método fazer_aniversario() para alterar a idade da pessoa. Um ponto importante está na property saudacao: como ela usa print() dentro do método, ao chamar print(pessoa1.saudacao), o Python também exibe None, porque a propriedade não retorna nenhum valor.
Uma dica interessante para o futuro é usar return dentro da property, deixando o print() apenas na chamada.
@property
def saudacao(self):
if self._profissao:
return f"Ola! Seja bem-vinda {self._nome}. Sua profissao e {self._profissao}"
return f"Ola! Seja bem-vinda {self._nome}!"
print(pessoa1.saudacao)
Esse código retorna a mensagem como texto e evita que o None apareça na saída. Continue praticando, pois esse ajuste mostra bem a diferença entre exibir algo com print() e devolver um valor com return.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!