1
resposta

[Projeto] Meu código


```#Ex pessoas:
class Pessoa:
    
    pessoas = []

    def __init__(self,nome = "",idade = 0, profissao = ""):
        self.nome = nome.title()
        self.idade = idade
        self.profissao = profissao
        Pessoa.pessoas.append(self)
    
    def __str__(self):
        return f"{self.nome.ljust(10)} | {str(self.idade).ljust(5)} anos | {self.profissao.ljust(15)}"
    
    @property
    def saudacao(self):
        if self.profissao:
            return f"Olá, sou {self.nome} e trabalho como {self.profissao}"
        else:
            return f"Olá, me chamo {self.nome}"

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

    @classmethod
    def listar_pessoas(cls):
        print(f"{"Nome".ljust(10)} | {"Idade".ljust(10)} | {"Profissão".ljust(15)}")
        for p in cls.pessoas:
            print(f"{p.nome.ljust(10)} | {str(p.idade).ljust(5)} anos | {p.profissao.ljust(15)}")

        
pessoa1 = Pessoa("pedro",19,"Sapateiro")
pessoa2 = Pessoa("Ana",15,)
pessoa3 = Pessoa("Joseli",45,"Professora")

Pessoa.listar_pessoas()
pessoa1.aniversario()
print(pessoa1)
print(pessoa2.saudacao)
print(pessoa3.saudacao)
1 resposta

Oi, Pedro! Como vai?

Agradeço por compartilhar.

Seu código ficou bem organizado, com bom uso de @property, @classmethod e da lista de classe pessoas para armazenar os objetos criados. Um ponto que chamou atenção foi o uso de self.nome.title(), que ajuda a padronizar os nomes, e o método aniversario(), que altera a idade do objeto de forma simples e direta.

Uma dica interessante para o futuro é usar o cls também ao adicionar a pessoa na lista dentro do __init__, deixando o código mais alinhado com a ideia de classe:

class Pessoa:
    pessoas = []

    def __init__(self, nome="", idade=0, profissao=""):
        self.nome = nome.title()
        self.idade = idade
        self.profissao = profissao
        self.__class__.pessoas.append(self)

Esse código adiciona cada novo objeto criado na lista da própria classe, mantendo a organização caso a classe seja reutilizada ou herdada no futuro.

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