Python对象创建具有3个聚合关系成员的组
Posted
技术标签:
【中文标题】Python对象创建具有3个聚合关系成员的组【英文标题】:Python object creating a group with 3 members of aggregation relationship 【发布时间】:2020-10-30 11:21:39 【问题描述】:我有一个任务是使用类创建一个 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: 'Group' object has no attribute 'memList'。有什么办法可以解决这个问题吗?
【问题讨论】:
memList
(大写 L)应为 memlist
(小写 L)。
【参考方案1】:
我写了一个小函数来列出成员和他们的年龄。
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函数基本上是获取成员类中存储的信息并返回列表。我在 Group 中使用 memlist 进行打印,但没有成功,因此我使用 all_member 函数创建了一个新列表,并使用您用于在 group1.getInfo 的 memlist 中获取信息的代码从 group1 中的 memlist 获取信息。
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())
我想这不是您能得到的最佳答案,但我认为它会起作用,而且我在尝试纠正它时学到了很多东西,所以感谢您发布。
【讨论】:
【参考方案2】:改变
print(group1.memList)
到
print(group1.memlist)
【讨论】:
以上是关于Python对象创建具有3个聚合关系成员的组的主要内容,如果未能解决你的问题,请参考以下文章