Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Atividade - Refatorando uma função

class Pessoa:
  def __init__(self, nome='', idade=0, profissao=''):
    self._nome = nome.title()  # Sempre capitaliza a 1ª letra do nome
    self._idade = idade
    self._profissao = profissao
    
  def __str__(self):
    return f'Nome: {self._nome} - idade: {self._idade} anos - profissao: {self._profissao}'
  
  @property
  def saudacao(self):
    return f'Parabéns {self._nome}! Hoje é dia do {self._profissao}.'
  
  def aumentar_idade(self, idade):
    self._idade += idade
    
# Instancia objetos da classe Pessoa
pessoa_1 = Pessoa('renato', 32, 'professor')
pessoa_2 = Pessoa('Paula', 40, 'cardiologista')

# Antes de alterar a idade
print(pessoa_1)
print(pessoa_2) 
print()

# Atualiza a idade
pessoa_1.aumentar_idade(2)  # Aumenta a idade em dois anos
pessoa_2.aumentar_idade(1)  # Pessoa fez aniversário 
print(pessoa_1)
print(pessoa_2)
print()

# Saudação personalizada usando método de classe
print(pessoa_1.saudacao)
print(pessoa_2.saudacao)
1 resposta
solução!

Oi, Eduardo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Sua refatoração ficou excelente! A utilização de @property para a saudação e o encapsulamento com atributos privados mostram que você aplicou bem os princípios de orientação a objetos. O uso de title() no nome também é um toque elegante para padronizar a saída.

Continue praticando — essa clareza na estrutura é um diferencial para escrever código limpo e reaproveitável.

Ícone de sugestão Para saber mais:

O @property é uma das ferramentas mais úteis da orientação a objetos em Python. Ele permite que métodos sejam acessados como atributos, deixando o código mais legível e elegante, além de manter o encapsulamento dos dados.

Quer aprofundar o uso dessa funcionalidade? Veja este artigo: O que é e como utilizar @property no Python

Alura

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