Partage
  • Partager sur Facebook
  • Partager sur Twitter

crée des objects dans un for

Sujet résolu
    3 avril 2015 à 15:48:22

    Bonjour, je souhaiterais crée des objects dans une boucle for, pour faire des test de performances.

    Voila mon code (qui ne marche pas):

    file="test.oc"
    
    liste_overview= []
    nbvar=2
    
    for i in range(0,nbvar) :
    	liste_overview.append(i)
    	i = i+1
    	
    for i in range(0,nbvar) :
    	liste_overview(i)=Overview(file)

    Es ce possible ou pas ?, par avance merci.

    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2015 à 17:06:35

      Ta première boucle ne sers à rien, tu va te retrouver avec un tableau

      [0]: 0 ; [1]: 1 ; [2]: 2  etc...

      Je rappelle que l'accès à une case du tableau se fait avec des [] pas des () (ligne 11)

      Code qui devrait fonctionner:

      file="test.oc"
       
      liste_overview= []
      nbvar=2
       
      
      for i in range(0,nbvar) :
          liste_overview.append(Overview(file))



      • Partager sur Facebook
      • Partager sur Twitter
        3 avril 2015 à 18:33:38

        liste_overview = [Overview(file) for _ in range(nbvar)]
        

        BTW c'est une très mauvaise idée de nommer une variable file.

        -
        Edité par nohar 3 avril 2015 à 18:36:16

        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          5 avril 2015 à 15:41:45

          T'a solution est juste, mais le probleme c'est que je souhaite nommer mes objets:

          Overview1, Overview2, Overview3 ... etc, es ce que c'est possible en python ?

          -
          Edité par mathema 5 avril 2015 à 15:42:06

          • Partager sur Facebook
          • Partager sur Twitter
            5 avril 2015 à 15:43:15

            Comment ça "nommer" tes objets ? Tu veux les assigner à des variables ou bien les coller dans une liste ? Ou bien ouvrir des fichiers différents ?

            Dans tous les cas c'est possible, mais sois plus spécifique, stp.

            • Partager sur Facebook
            • Partager sur Twitter
            Zeste de Savoir, le site qui en a dans le citron !
              5 avril 2015 à 15:48:24

              Déjà merci pour ton aide, voila ce que je souhaite faire:

              1) Je souhaite crée des objets Overview de manière dynamique

              2) Je veut nommer ces objets crée overview1, overview2.... etc

              3) je veut les mettre dans une liste, mais je veut qu'ils conservent leurs nom (overview1, 2 , 3...)

              -
              Edité par mathema 5 avril 2015 à 15:49:03

              • Partager sur Facebook
              • Partager sur Twitter
                5 avril 2015 à 16:01:46

                OK, t'as un problème de conception.

                Pourquoi vouloir créer des variables alors que tu as une liste indexée ? liste_overview[0] est tout aussi bien que overview1.

                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !
                  5 avril 2015 à 16:14:58

                  C'est typiquement une question de débutant, je pensais un peu comme ça avant. Et effectivement la solution c'est les listes, tu n'y échapperas pas, c'est comme ça, si tu as vraiment besoin d'indexer des noms utilise un dictionnaire ou les namedtuple du module collections.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 avril 2015 à 16:37:50

                    ok, donc l'idée c'est de crée des objets ayant le même nom de variable, mais insérer dans une liste (et donc a des positions différentes).

                    Merci.

                    Pour accéder a une propriété d'un objet j'ai juste a faire :

                    maliste[0].mapropriete

                    -
                    Edité par mathema 5 avril 2015 à 16:39:48

                    • Partager sur Facebook
                    • Partager sur Twitter

                    crée des objects dans un for

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown