Partage
  • Partager sur Facebook
  • Partager sur Twitter

Où sont créé mes objets ?

Position des références

    23 décembre 2010 à 20:22:28

    Bonjour à tous,

    Je m'abonne aux questions tordues. Mais derrière j'ai un vrai problème : est-ce que vous savez si il existe un moyen de tracer la création d'un objet pour localiser tous les endroits où il a été créé ?

    Pour être plus précis, j'ai disons une classe Lacets et une classe Chaussure. La classe Chaussure possède un attribut lacets qui est un objet dérivé de Lacets.

    J'ai plusieurs lacets, j'ai plusieurs chaussures, mais plusieurs de mes chaussures vont pointer vers le même lacet.

    La question : est-ce que j'ai un moyen d'obtenir les références vers toutes les chaussures qui pointent vers un objet de type lacet précis ? Je connais le lacet, je veux retrouver les chaussures dont l'attribut lacet pointe vers la référence de mon lacet.

    Pour ceux qui se posent la question, non je ne monte pas une boutique de chaussure virtuelle, je ne me lance pas dans le business type "chaussons nos ordinateurs", mais j'ai un peu simplifié mon problème qui est déjà assez complexe comme ça.

    J'ai essayé de passer par gc mais ce n'est pas conseillé au-delà du debug, selon la documentation. De toute façon, ce n'est pas extrêmement propre.

    Le problème c'est naturellement qu'à ma connaissance un objet qu'on crée ne sait pas où on va le mettre. C'est tout le problème ;) .

    Allez, je vous laisse méditer.

    Prolixe
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2010 à 20:43:30

      Facile: Si tu tires sur le lacet, les chaussures suivront!! ;)

      Sinon pourquoi ne pas ajouter à une liste, attribut du lacet, une référence à chaque chaussure au moment de la création des-dites chaussure?
      Ou alors j' ai rien compris?
      • Partager sur Facebook
      • Partager sur Twitter
        23 décembre 2010 à 23:15:36

        Oui je n'ai peut-être pas été assez clair.

        On va continuer dans mon cas super concret. Plusieurs chaussures ont des lacets noirs (c'est très tendance, si si). Pour l'exemple, chaque chaussure a un attribut lacets pointant vers une même référence de lacets, les lacets noirs. Au moment où les lacets noirs se détruisent, ce serai cool que l'attribut lacets des chaussures qui ont des lacets noirs repasse à None.

        Donc je dois savoir, quand je crée un lacet (ou une paire de lacets :p ) où est-ce que se trouvent les références vers ce lacet. Des lacets noirs, je veux obtenir toutes les chaussures qui pointent vers ce lacet noir.

        Je ne vois aucun moyen, mais je ne connais pas (et ne connaîtrait jamais) toutes les subtilités de Python. C'est pourquoi je vous soumet le problème ;) .
        • Partager sur Facebook
        • Partager sur Twitter
          24 décembre 2010 à 0:29:24

          Citation : prolixe

          Au moment où les lacets noirs se détruisent, ce serai cool que l'attribut lacets des chaussures qui ont des lacets noirs repasse à None.



          L'instance en question ne peut pas être détruite tant que tes chaussures gardent une référence dessus.

          Sinon, ce que tu veux, c'est une weakref, dans le module du même nom.
          • Partager sur Facebook
          • Partager sur Twitter

          Où sont créé mes objets ?

          × 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