1
resposta

Mão na massa: refatorando uma função

# Agora é sua vez! Crie uma nova classe chamada Pessoa com atributos como nome, idade e profissão. Adicione um método especial __str__ para imprimir uma representação em string da pessoa. Implemente também um método de instância chamado aniversario que aumenta a idade da pessoa em um ano. Por fim, adicione uma propriedade chamada saudacao que retorna uma mensagem de saudação personalizada com base na profissão da pessoa.

class Pessoa:
    pessoas=[]

    def __init__(self, nome='', idade=int, profissao=''):
        self.nome = nome
        self.idade = idade
        self.profissao = profissao
        Pessoa.pessoas.append(self)

    def __str__(self):
        return f'{self.nome}, {self.idade} anos - {self.profissao}'

    @classmethod
    def listar_profissionais(cls):
        print(f'\n{'Nome do profissional'.ljust(25)} | {'Idade'.ljust(5)} | {'Profissão'}')
        for pessoa in cls.pessoas:
            print(f'{pessoa.nome.ljust(25)} | {pessoa.idade}    | {pessoa.profissao}')

    def aniversario(self):
        self.idade += 1

    def saudacao(self):
        if self.profissao =='Engenheiro' or self.profissao =='Engenheira':
            area_profissional ='profissional na área de exatas'
        elif self.profissao =='Médico' or self.profissao =='Médica':
            area_profissional ='profissional na área de saúde'
        elif self.profissao =='Professor' or self.profissao =='Professora':
            area_profissional =='profissional na área de educação'
        else:
            area_profissional =='profissional liberal'
        print(f'\n{self.nome}, {self.idade} anos, {area_profissional}\n')


individuo_1=Pessoa('Ricardo',53,'Engenheiro')
individuo_2=Pessoa('Marcos',45,'Médico')
individuo_3=Pessoa('Maria',30,'Professora')

Pessoa.listar_profissionais()
Pessoa.aniversario(individuo_1)
Pessoa.listar_profissionais()

Pessoa.saudacao(individuo_1)
1 resposta

Oi, Ricardo! Como vai?

Gostei da forma como você utilizou o @classmethod para listar os profissionais, isso ajuda bastante na organização e reutilização do código. Também foi interessante ver o uso do método especial __str__ para personalizar a saída das instâncias.

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