Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création dynamique d'objet de classe

Sujet résolu
    30 mars 2020 à 14:42:36

    Bonjour,

    Je suis débutant en Python et je cherche à dynamiquement créer des objets vides de la classe "OaElement". 

    J'ai une fonction qui récupère le nombre d'objets a créer sous la variable LVD_number (ex : 42) et j'aimerais accéder aux attributs de ces 42 éléments indépendamment.

    Ci-jointe ma définition de classe 

    #Define a class for element
    class OaElement:
        def __init__(self, typ, name, desc):
            self.typ = typ
            self.name = name
            self.desc = desc

    J'ai initié la boucle For mais je n'arrive pas à coder le contenu pour la création de ces objets.

    for i in range(LVD_Number):

    Merci de votre aide

    Cdt

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2020 à 16:40:16

      Pour créer des objets vides, il faut exprimer ce que serait les valeurs de tes attributs de classe dans ce cas de figure. Hors ici tu ne l'exprimes pas.
      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        30 mars 2020 à 18:08:27

        Merci pour la réponse.Désolé, j'ai du mal m'exprimé.

        En fait, j'ai créé 2 objets de la classe 0aElement. J'aimerais en créer 42 dynamiquement sans avoir à les déclarer unitairement. D’où l'utilisation d'un boucle for mais sans succès :

        J'aimerais créer 42 objets de ce type...

        oa1 = OaElement("MEASUREMENT", "TEMPERATURE", "TEMPERATURE OF WATER")
        oa2 = OaElement("MEASUREMENT", "TEMPERATURE", "TEMPERATURE OF WATER")

        Je pensais à un code de ce type là mais ça plante.

        for i in range(LVD_Number):
            oa[i] = OaElement("MEASUREMENT", "TEMPERATURE", "TEMPERATURE OF WATER")

        Idle me répond que  'oa' is not defined

        Merci pour votre retour


        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2020 à 18:11:12

          Normal, tu dois créer une liste vide avant et utiliser la méthode append des listes.
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            30 mars 2020 à 18:56:01

            En effet, ça marche.

            Merci !

            • Partager sur Facebook
            • Partager sur Twitter

            Création dynamique d'objet de classe

            × 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