我試圖用一個Member類和一個Guest類表示組成員資格。問題是我需要一個小組能夠告訴我哪些成員是該小組的成員,但我也需要一個成員能夠告訴我它是哪個小組的成員。python ood - 類之間的重複信息
例如,使用下列內容:
class Member:
MemberCount = 0
def __init__(self, name):
self.name = name
self.MemberID = Member.MemberCount
Member.MemberCount += 1
def displayMember(self):
print "Member ID %d" % self.MemberID
print "Member name %s" % self.name
class Group:
groupCount = 0
def __init__(self, name):
self.name = name
self.MemberList = []
self.groupID = Group.groupCount
Group.groupCount += 1
def addMember(self, Member):
self.MemberList.append(Member)
def displayGroup(self):
print "Group ID %d" % self.groupID
print "Group name %s" % self.name
print "This group contains the following members"
for i in self.MemberList:
print i.name,
print "\n"
#Create some members
member1 = Member("Tim")
member2 = Member("Bill")
member3 = Member("Jack")
member4 = Member("Julian")
member5 = Member("Alex")
#Create some groups
group1 = Group("Golf Club")
group2 = Group("Shooting Club")
group3 = Group("Swimming Club")
#Add the members to groups
group1.addMember(member1)
group1.addMember(member2)
group1.addMember(member3)
group2.addMember(member3)
group2.addMember(member4)
group2.addMember(member5)
group3.addMember(member1)
group3.addMember(member2)
group3.addMember(member5)
#Display the groups' members
group1.displayGroup()
group2.displayGroup()
group3.displayGroup()
我得到以下輸出:
Group ID 0
Group name Golf Club
This group contains the following members
Tim Bill Jack
Group ID 1
Group name Shooting Club
This group contains the following members
Jack Julian Alex
Group ID 2
Group name Swimming Club
This group contains the following members
Tim Bill Alex
顯示各組中的成員,但如果我想顯示組每個成員的一部分那麼我需要爲列出它的組的每個訪客添加一個列表,所以看起來我將兩次存儲相同的信息,但只是以不同的形式。
我怎樣才能知道哪些成員是一個組的成員,以及一個成員屬於哪個組而不重複這些信息?
我不知道'getGroups()'應放置在哪裏。我認爲一個成員不應該有權訪問所有組,當組是全局列表時會發生這種情況。但對於其餘的我同意 –
好吧,你要麼有一個全球成員或組的名單。你必須在某個地方跟蹤你的物體。 –