2010-03-16 6 views
-1

J'ai une classe Club et une classe Player. La classe de joueur a un attribut Fav.clubs qui aura des valeurs de club uniques. L'utilisateur est donc censé entrer plusieurs noms de club. Basé sur les noms de club je dois récupérer ces objets de club et établir la relation que ce joueur particulier a cette Fav.clubs.Organisation d'objets Python à récupérer

L'attribut Fav.clubs de la classe Player doit contenir les noms Club. Maintenant ce que je dois faire est, prendre l'entrée de l'utilisateur au sujet de Fav.clubs (une liste). Après cela, parcourez chaque élément de la liste et accédez au nom de la chaîne pour trouver l'objet club correspondant, puis stockez cette instance d'objet dans la classe Player.

+2

1. Paragraphe d'exécution difficile à analyser. 2. Aucune question réelle que je pourrais trouver. 3. On dirait des devoirs. S'il vous plait, cassez ça pour pouvoir l'analyser. S'il vous plaît poser une question claire. Veuillez étiqueter les devoirs avec le tag [devoirs]. –

+0

okay n'était pas au courant à ce sujet..merci de me le faire savoir – gizgok

+1

@gizgok: N'a pas été au courant du paragraphe en cours? Je ne savais pas qu'il n'y avait pas de question? Je ne savais pas que vous deviez faire vos propres devoirs? Cela semble dur parce que c'est. S'il vous plaît faites vos propres devoirs. –

Répondre

1

Stocker tous les clubs dans un dictionnaire appelé all_clubs. La clé devrait être le nom du club et la valeur du club lui-même. Ensuite, vous pouvez faire all_clubs[clubname] pour récupérer l'objet club pour un nom donné.

Le joueur peut avoir un attribut club_names qui est la liste des noms uniques dont vous avez parlé et une propriété clubs qui pourrait ressembler à ceci:

class Player(object): 
    # ... 

    @property 
    def clubs(self): 
     result = [] 
     for name in self.club_names: 
      result.append(all_clubs.get(name)) 
     return result 

Alternativement, il pourrait aussi être une bonne idée d'utiliser un Outil ORM comme sqlalchemy et une simple base de données sqlite à base de fichiers ou en mémoire. Ensuite, vous avez la puissance de SQL et un très bon mappage relationnel. Mais si vous êtes nouveau sur Python, je n'utiliserais pas quelque chose comme ça, car sqlalchemy est un sujet assez complexe et le mapping utilise une magie python en arrière-plan, que vous ne comprenez peut-être pas au début. Par conséquent, je suggère la première méthode.

+0

Le problème est que je fais UI.So dans la classe de joueur je demande à la utilisateur à entrer fav.clubs.I ne sais pas comment faire un dictionnaire en utilisant raw_input, mais savent comment faire une liste.so j'ai fait une liste et maintenant je vérifie la classe club pour has_key .... Maintenant, je veux récupérer cet objet et – gizgok

+0

La méthode que j'ai expliquée vous oblige à appeler dans la méthode UI pour ajouter de nouveaux clubs où vous demandez à l'utilisateur d'entrer le nom du club (et tous les autres détails comme l'emplacement? , leader?, etc) 'all_clubs [clubname] = club' après l'objet club h comme créé. Pour le joueur lui-même, il suffit d'entrer la valeur de club_names, qui devrait être une liste. Vous pouvez utiliser quelque chose comme 'raw_input(). Split (',')' pour générer cette liste à partir de l'entrée de l'utilisateur. La connexion des deux classes est effectuée dans la propriété. 'Player.clubs' est une liste contenant tous les objets Club nommés dans Player.club_names'. – tux21b

0

Utilisez un dict pour stocker une carte entre les chaînes et les instances de Club:

clubmap = { 
    'basketball': Club("Basketball club"), 
    'chess': Club("Chess club"), 
} 

someplayer.joinclub(clubmap['basketball']) 
+0

Le problème est que je fais UI.So dans la classe des joueurs Je demande à l'utilisateur d'entrer dans fav.clubs.I ne sais pas comment faire un dictionnaire en utilisant raw_input, mais sais comment faire une liste.J'ai fait une liste et maintenant Je vérifie la classe de club pour has_key .... Maintenant je veux récupérer cet objet et stocker cet objet dans la classe de joueur dans une liste ou une dict – gizgok