1
resposta

[Sugestão] Solução de Mão na Massa

Abaixo o meu código baseado na aula, deixei a proteção das variáveis, porém uma nota que a opinião do Instrutor pede para chamar a função da saudação sem os parenteses, simplesmente não chamando a função, abaixo como eu fiz o código

class Pessoas:
    def __init__(self, nome='', idade=0, profissao=''):
        self._nome = nome.title()
        self._idade = idade
        self._profissao = profissao

    def __str__(self):
        return f' Sou {self._nome}, tenho {self._idade} anos e trabalho como {self._profissao}'
    
    @property
    def aniversario(self):
        self._idade += 1

    def saudacao(self):
        return f'Olá, meu nome {self._nome} e trabalho com {self._profissao}' if self._profissao else f'Olá, meu nome é {self._nome}'

    
    
pessoa1 = Pessoas(nome='marcia', idade=25, profissao='Desenvolvedor')
pessoa2 = Pessoas(nome='lucas', idade=30, profissao='Pedreiro')
pessoa3 = Pessoas(nome='enzo', idade=17)

print(pessoa1.saudacao())
print(pessoa2.saudacao())
print(pessoa3.saudacao())
1 resposta

Olá Gabriel, tudo bem com você?

Seu código está bem estruturado e você está no caminho certo, continue com esse empenho e dedicação. Gostaria de aproveitar a oportunidade e listar dois pontos de correção no código para que ele fique ainda melhor e mais alinhado com a proposta da atividade.

  • Método aniversario como função: No seu código, você definiu aniversario como uma propriedade, mas ele deveria ser um método que incrementa a idade da pessoa. Para corrigir este ponto, basta remover o decorador @property do método aniversario, deixando como abaixo:

    def aniversario(self):
            self._idade += 1
    
  • Propriedade saudacao: A saudação pode ser transformada em uma propriedade para que você possa chamá-la sem parênteses, conforme sugerido na atividade. Para isso, basta adicionar o decorador @property no método saudacao, deixando como abaixo:

    @property
        def saudacao(self):
            return f'Olá, meu nome {self._nome} e trabalho com {self._profissao}' if self._profissao else f'Olá, meu nome é {self._nome}'
    

Feita essas mudanças, vale notar que agora o método aniversario é uma função que incrementa a idade, e a saudação é uma propriedade, permitindo que você a chame sem parênteses.

Aqui está uma versão ajustada do seu código:

class Pessoas:
    def __init__(self, nome='', idade=0, profissao=''):
        self._nome = nome.title()
        self._idade = idade
        self._profissao = profissao

    def __str__(self):
        return f'Sou {self._nome}, tenho {self._idade} anos e trabalho como {self._profissao}'
    
    def aniversario(self):
        self._idade += 1

    @property
    def saudacao(self):
        return f'Olá, meu nome é {self._nome} e trabalho como {self._profissao}' if self._profissao else f'Olá, meu nome é {self._nome}'

# Testando a classe
pessoa1 = Pessoas(nome='marcia', idade=25, profissao='Desenvolvedor')
pessoa2 = Pessoas(nome='lucas', idade=30, profissao='Pedreiro')
pessoa3 = Pessoas(nome='enzo', idade=17)

print(pessoa1.saudacao)
print(pessoa2.saudacao)
print(pessoa3.saudacao)

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!