Python объект, создающий группу с 3 участниками агрегированного отношения - PullRequest
0 голосов
/ 09 июля 2020

Мне было поручено создать код python с использованием класса для создания группы из 3 членов (отношение агрегирования). Это мой код:

class Member:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def getInfo(self):
        memberInfo = "Name: " + str(self.name) + "." + "Age: " + str(self.age)
        return memberInfo

class Group:
    def __init__(self,name):
        self.name = name
        self.memlist = []
    def addMember(self,member):
        self.memlist.append(member)

    def getInfo(self):
        info = "Member List: \n"
        for i in range(len(self.memlist)):
            info += self.memlist[i].getInfo() + "\n"
            print(info)
            break
        
    
mem1 = Member("Chi",20)
mem2 = Member("Bach",7)
mem3 = Member("Gen", 22)

group1 = Group("Siblings")
group1.addMember(mem1)
group1.addMember(mem2)
print(group1.getInfo())
print(mem2.getInfo())
print(group1.memList)

Но он показал ошибку: AttributeError: объект «Группа» не имеет атрибута «memList». Что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

изменить

print(group1.memList)

на

print(group1.memlist)
0 голосов
/ 10 июля 2020

Я написал небольшую функцию для перечисления членов и их возраста.

   class member:
       def __init__(self, name, age):
          self.name = name
          self.age = age


       def member_Info(self):
          memberInfo = f"Name: {str(self.name)}-->Age: {str(self.age)}"
          return memberInfo



    class Group:
       def __init__(self, name):
          self.name = name
          self.memlist = []


       def addMember(self, name):
          self.memlist.append(name)


       def getInfo(self):
           for i in range(len(self.memlist)):
               info = self.memlist[i].member_Info() + "\n"
               print(info)

Эта функция all_members в основном получает информацию, хранящуюся в классе-члене, и возвращает ее в список. Я печатаю с помощью memlist в Group, но это не сработало, поэтому я создал новый список с помощью функции all_member и получил информацию из memlist в group1 с кодом, который вы использовали для получения информации в memlist в group1.getInfo.

    def all_members():
        all_mems = []
        for i in range(len(group1.memlist)):
             all_mems.append(group1.memlist[i].member_Info())
        print(all_mems)


    mem1 = member("Chi", "20")
    mem2 = member("Bach", "7")
    mem3 = member("Gen", "22")

    group1 = Group("Siblings")

    group1.addMember(mem1)
    group1.addMember(mem2)
    group1.addMember(mem3)

    print(group1.getInfo())
    print(mem2.member_Info() + "\n")
    print(all_members())

Думаю, это не лучший ответ, который вы можете получить, но я думаю, что он сработает, а также я многому научился, пытаясь исправить это, так что спасибо за то, что опубликовали это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...