How to create a class that contains a list of objects of a parent class?

Asked

Viewed 41 times

-2

I need to create a person class that will have attributes (name, age) and a group class that will contain a list of objects of the person class. However I do not know how to do the second class... Someone could help me?

class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade

How could I create the class "group"?

1 answer

0

You need to work with inheritance in this your case is easier to create a Group class containing a list of people and adding val

class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade


class Grupo:
    def __init__(self):
      self.list_pessoas = []
      pass
    
    def addPessoa(self,obj_pessoa):
      assert isinstance(obj_pessoa,Pessoa), "Tem que ser uma classe do tipo pessoa"
      self.list_pessoas.append(obj_pessoa)
    
    def printPessoas(self):
      for p in self.list_pessoas:
        print(f'{p.nome} --> {p.idade}')

#Crio cada pessoa
pessoa1 = Pessoa('joao',12)
pessoa2 = Pessoa('maria',15)
pessoa3 = Pessoa('pedro',18)

grupo = Grupo()
#Adiciono a lista dentro da classe grupo
grupo.addPessoa(pessoa1)
grupo.addPessoa(pessoa2)
grupo.addPessoa(pessoa3)

#Printo todas as pessoas na tela
grupo.printPessoas()

# joao --> 12
# maria --> 15
# pedro --> 18

Browser other questions tagged

You are not signed in. Login or sign up in order to post.