1
resposta

[Projeto] resolva o desafio

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

    # Representação em string da pessoa
    def __str__(self):
        return f'{self.nome}, {self.idade} anos - Profissão: {self.profissao}'

    # Método de instância para aumentar a idade
    def aniversario(self):
        self.idade += 1

    # Propriedade para saudação personalizada baseada na profissão
    @property
    def saudacao(self):
        if self.profissao:
            return f'Olá, sou o(a) {self.nome} e trabalho como {self.profissao}!'
        else:
            return f'Olá, sou o(a) {self.nome}!'

# --- Testando a implementação ---

# 1. Criando uma instância
pessoa1 = Pessoa('Alice', 30, 'Engenheira de Software')

# 2. Exibindo o __str__
print(pessoa1)

# 3. Chamando o método aniversario
pessoa1.aniversario()
print(f'Após o aniversário, {pessoa1.nome} tem {pessoa1.idade} anos.')

# 4. Acessando a propriedade saudacao
print(pessoa1.saudacao)
1 resposta

Oii, Moacir! Tudo bem? Fico muito feliz em ver seu empenho em resolver o desafio e compartilhar sua solução.

Sua implementação da classe Pessoa está excelente! O código está limpo, legível e funciona exatamente como esperado. Você aplicou muito bem os conceitos de Orientação a Objetos.

Vou destacar alguns pontos muito positivos que notei no seu código para reforçar o aprendizado:

  1. Parâmetros opcionais no __init__:
    Você definiu valores padrão (nome='', idade=0, etc.). Isso é ótimo porque torna a criação do objeto flexível. Se quisermos criar uma pessoa sem profissão definida inicialmente, o código não quebra.
  2. Uso do decorador @property:
    Você usou corretamente o @property em saudacao. Isso permite que acessemos essa lógica complexa (o if/else) como se fosse um simples atributo (pessoa1.saudacao sem os parênteses ()). Isso deixa o código muito mais elegante ("Pythonico").
  3. Lógica condicional:
    A verificação if self.profissao: é uma maneira inteligente de checar se a string não está vazia.

Continue firme nos estudos.

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