1
resposta

Atividade - refatorando uma função

Espero que esteja correto

class Pessoa:
    def __init__(self, nome='', idade=0, profissao=''):
        self.nome = nome
        self.idade = idade
        self.profissao = profissao

    def __str__(self):
        return f'Olá {self.nome}! Você tem {self.idade} anos de idade e atualmente atua como {self.profissao} '
    
    def aniversario(self):
        self.idade += 1
    
    @property
    def saudacao(self):
        return f'Parabens pelo cargo de {self.profissao}! Estamos muito orgulhosos de você'
    

pessoa_ana = Pessoa('Ana', 19, 'Assistente de cozinha')
print(pessoa_ana)
print(pessoa_ana.saudacao)
pessoa_ana.aniversario()
print(pessoa_ana)
1 resposta

Oii, Ana.

Seu código tá excelente e atende perfeitamente aos requisitos do exercício. Você aplicou corretamente os conceitos de métodos especiais, métodos de instância e o uso de decoradores para propriedades.

Notei que você teve um cuidado especial ao personalizar as mensagens de retorno, o que demonstra uma ótima compreensão de como os objetos podem interagir com os dados que carregam.

O que você fez muito bem:

  • Método __init__: Você definiu os atributos iniciais de forma clara, garantindo que o objeto Pessoa comece com os dados necessários.
  • Método aniversario: A lógica de incrementar a idade está correta.
  • A @property saudacao: Você transformou um método em um atributo de leitura, que é a forma idiomática de Python para expor dados calculados ou formatados.
  • Método __str__: Criou uma representação amigável que facilita muito a visualização ao usar o print.

Uma pequena sugestão de melhoria

Assim como no exemplo do instrutor, você pode adicionar uma verificação simples na sua saudacao para casos em que a profissão não seja informada. Isso evita que a frase fique incompleta ou estranha se alguém criar uma pessoa sem esse dado.

@property
def saudacao(self):
    if self.profissao:
        return f'Parabens pelo cargo de {self.profissao}! Estamos muito orgulhosos de você'
    return f'Olá {self.nome}! Que bom ter você por aqui.'

No mais, seu raciocínio está no caminho certo para construir sistemas cada vez mais organizados e fáceis de manter.

Continue praticando essa estrutura de classes, pois ela é a base para quase tudo que você encontrará no desenvolvimento backend com Python.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!