我有一个Club
班级和一个Player
班级。玩家类具有属性Fav.clubs
,其具有唯一的俱乐部值。因此用户应该输入各种俱乐部名称。根据俱乐部名称,我必须检索这些俱乐部对象并建立这个特定球员的关系Fav.clubs
。
Fav.clubs
类中的属性Player
应存储Club
的名称。现在我要做的是,从用户那里获取关于Fav.clubs
(列表)的输入。之后遍历列表中的每个元素并访问字符串名称以查找相应的club对象,然后将该对象实例存储在Player
类中。
答案 0 :(得分:1)
将所有分会存放在名为all_clubs
的词典中。关键应该是俱乐部名称和俱乐部对象本身的价值。然后你可以all_clubs[clubname]
来检索给定名字的俱乐部对象。
播放器可能有一个属性club_names
,它是您描述的唯一名称列表,属性clubs
可能如下所示:
class Player(object):
# ...
@property
def clubs(self):
result = []
for name in self.club_names:
result.append(all_clubs.get(name))
return result
或者,使用像sqlalchemy这样的ORM工具和简单的基于文件或内存的sqlite数据库也可能是个好主意。然后你就拥有了SQL的强大功能和极好的关系映射。但是如果你是Python的新手,我不会使用类似的东西,因为sqlalchemy是一个相当复杂的主题,并且映射在后台使用了一些python魔法,你可能在开始时就不会理解。因此,我建议采用第一种方法。
答案 1 :(得分:0)
使用dict
在字符串和Club
clubmap = {
'basketball': Club("Basketball club"),
'chess': Club("Chess club"),
}
someplayer.joinclub(clubmap['basketball'])