1
resposta

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

class Pessoa:
    #Atributos
    nome = ''
    idade = int
    profissao = ''

    # Método construtor
    def __init__(self, nome, idade, profissao):
        self.nome = nome
        self.idade= idade
        self.profissao = profissao


    def __str__(self):
        return('{} - {} anos - Profissão: {}'.format(self.nome, self.idade, self.profissao))
    

    def aniversario(self):
        self.idade = self.idade + 1
        print('{} fez aniversário!'.format(self.nome))
    
    
    def saudacao(self):
        if(self.profissao == 'Médico'):
            print('Saudações médicas')
        elif(self.profissao == 'Advogado'):
            print('Saudações direitas')
        elif(self.profissao == 'Programador'):
            print('Saudações programadoras')

pessoa1 = Pessoa('Anderson', 25, 'Programador')
pessoa2 = Pessoa('Vívian', 25, 'Advogado')
pessoa3 = Pessoa('Marcos', 27, 'Médico')

pessoa1.saudacao()

pessoa2.aniversario()
print(pessoa2)
1 resposta

Olá, Anderson! Como vai?

Observei que você explorou o uso de classes em Python para organizar os dados de forma estruturada, utilizou muito bem o método __init__ para inicializar os atributos de cada objeto e ainda compreendeu a importância do método __str__ para personalizar a exibição das instâncias da classe.

Uma dica interessante para o futuro é usar f-strings no lugar de .format() para tornar o código mais legível e moderno. Dessa forma:

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

Resultado:

Vívian - 26 anos - Profissão: Advogado

Isso faz com que a formatação de strings fique mais clara, enxuta e compatível com as práticas atuais do Python.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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