Храните все клубы в словаре под названием 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
В качестве альтернативы, было бы также неплохо использовать инструмент ORM, такой как sqlalchemy, и простую базу данных sqlite на основе файлов или в памяти. Тогда у вас есть мощь SQL и очень хорошее реляционное отображение. Но если вы новичок в Python, я бы не стал использовать что-то подобное, потому что sqlalchemy - довольно сложная тема, а в картировании используется некоторая магия Python в фоновом режиме, которую вы, возможно, не поняли в начале. Поэтому я бы предложил первый метод.