1
resposta

Resolução de Atividades - 06 Mão na massa: refatorando uma função

class Pessoa:

    def __init__ (self, nome = "", idade = 0, profissao = ""):

        self._nome = nome
        self._idade = idade
        self._profissao = profissao

    def __str__ (self):

        return f"Nome: {self._nome} | Idade: {self._idade} | Ocupação: {self._profissao}"
    

    @property

    def saudacao (self):

        print (f"Olá! Seja bem-vinda {self._nome}. Sua profissão é {self._profissao}") if self._profissao else print (f"Olá! Seja bem-vinda {self._nome}!")

    def fazer_aniversario (self):

        self._idade += 1

    
pessoa1 = Pessoa(nome='Alice', idade=25, profissao='Engenheira')
pessoa2 = Pessoa(nome='Luiza', idade=30, profissao='Desenvolvedor')
pessoa3 = Pessoa(nome='Jaque', idade=22)

print("Informações Iniciais:")
print(pessoa1)
print(pessoa2)
print(pessoa3)
print()

pessoa1.fazer_aniversario()
pessoa3.fazer_aniversario()

print("Informações após aniversário:")
print(pessoa1)
print(pessoa3)
print()

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

Oi, Victor! Como vai?

Agradeço por compartilhar.

Você organizou bem a classe Pessoa, usando atributos privados, o método __str__ para exibir as informações e o método fazer_aniversario() para alterar a idade da pessoa. Um ponto importante está na property saudacao: como ela usa print() dentro do método, ao chamar print(pessoa1.saudacao), o Python também exibe None, porque a propriedade não retorna nenhum valor.

Uma dica interessante para o futuro é usar return dentro da property, deixando o print() apenas na chamada.


@property
def saudacao(self):
    if self._profissao:
        return f"Ola! Seja bem-vinda {self._nome}. Sua profissao e {self._profissao}"
    return f"Ola! Seja bem-vinda {self._nome}!"

print(pessoa1.saudacao)

Esse código retorna a mensagem como texto e evita que o None apareça na saída. Continue praticando, pois esse ajuste mostra bem a diferença entre exibir algo com print() e devolver um valor com return.

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