Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher l'adresse d'une variable

    25 novembre 2010 à 11:12:57

    J'ai lu dans un tuto sur les pointeurs de m@teo21, qu'en C on pouvait afficher la valeur de l'adresse d'une variable (pas son contenu) par

    printf("La variable age vaut : %d", age);
    


    Quel serait l'équivalent en python? Comme je suis nouveau en python, please ne sous-entendez aucun signe "évident" à rajouter à votre code.

    Merci pour votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      25 novembre 2010 à 11:28:55

      Je crois pas que c'est possible de récupérer l'addresse d'une variable (et mes recherches google vont dans ce sens).
      • Partager sur Facebook
      • Partager sur Twitter
        25 novembre 2010 à 11:59:20

        Apparemment si:

        http://www.velocityreviews.com/forums/ [...] inpython.html

        Ceci dit, ça demande d'utiliser l'API C, et ça m'a l'air d'être tout sauf passionnant. Pourquoi as-tu besoin d'acceder à l'adresse d'une variable?
        • Partager sur Facebook
        • Partager sur Twitter
          25 novembre 2010 à 12:17:09

          En python, on n'utilise pas les pointeurs. Si tu veux t'en servir, il faut que tu ailles vers un autre langage comme le C.
          • Partager sur Facebook
          • Partager sur Twitter
            25 novembre 2010 à 12:41:02

            Oui et non.

            Oui c'est vrai que python n'est pas forcément très adapté pour ce genre d'opérations low-level. Mais de là à dire qu'il devrait aller voir du côté du C, il y a une marge. Je vois au moins deux raisons pour lesquelles ils pourrait vouloir accéder à l'adresse d'une variable, sans pour autant passer au C:

            1) Étant donné qu'il débute en python, peut être qu'il ne sait pas que les pointeurs n'existent pas. Peut-être qu'il a une base de C, et qu'il essaie d'appliquer les mêmes concepts en Python.

            2) Peut-être qu'il a besoin d'accéder à l'adresse d'une variable dans un cadre très précis, et il n'a pas envie de se taper tout un tuto C juste pour ça.

            D'ou ma question: @transforme: pourquoi exactement as-tu besoin d'utiliser un pointeur?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              25 novembre 2010 à 13:27:49

              Citation

              Quel serait l'équivalent en python?



              Python3

              print("La variable age vaut : %d" %age)
              


              Python 2.x

              print "La variable age vaut : %d" %age
              


              • Partager sur Facebook
              • Partager sur Twitter
                25 novembre 2010 à 15:06:00

                fred1559, la question n'est pas de savoir comment utiliser %d en python, mais comment obtenir l'adresse mémoire d'une variable.

                Citation : Abraxasz

                Oui et non.

                Oui c'est vrai que python n'est pas forcément très adapté pour ce genre d'opérations low-level. Mais de là à dire qu'il devrait aller voir du côté du C, il y a une marge. Je vois au moins deux raisons pour lesquelles ils pourrait vouloir accéder à l'adresse d'une variable, sans pour autant passer au C:

                1) Étant donné qu'il débute en python, peut être qu'il ne sait pas que les pointeurs n'existent pas. Peut-être qu'il a une base de C, et qu'il essaie d'appliquer les mêmes concepts en Python.

                2) Peut-être qu'il a besoin d'accéder à l'adresse d'une variable dans un cadre très précis, et il n'a pas envie de se taper tout un tuto C juste pour ça.

                D'ou ma question: @transforme: pourquoi exactement as-tu besoin d'utiliser un pointeur?


                1) Dans ce cas, il faut lui expliquer qu'il ne doit pas faire ça, et que Python est un langage haut niveau différent du C. essayer de programmer en C avec la syntaxe de python est une erreur.
                2) S'il a besoin de traiter ce genre de détails bas-niveau, alors Python n'est pas fait pour lui. La preuve : on est obligé de tricher et de programmer le truc en C avant de l'appeler en python.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 novembre 2010 à 17:48:38

                  Citation : transforme

                  J
                  Quel serait l'équivalent en python? Comme je suis nouveau en python, please ne sous-entendez aucun signe "évident" à rajouter à votre code.



                  Ce qui s'en rapproche le plus est id(toto)toto est l'objet. id() est une fonction standard qui renvoie l'"identifiant" de l'objet. D'ailleurs dans l'implémentation de CPython, id() représente l'"adresse C" de l'objet. De toutes façons, ainsi que cela a été dit, faut pas du tout raisonner en termes de pointeurs en Python.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    25 novembre 2010 à 18:09:15

                    Citation

                    fred1559, la question n'est pas de savoir comment utiliser %d en python, mais comment obtenir l'adresse mémoire d'une variable.



                    Oui et non étant donné que des pointeurs en python n'ont aucune cohérence. J'ai donc regardé le but final, récupérer la variable âge.

                    Sinon ce lien est exactement ce que cherche le PO --> ICI

                    • Partager sur Facebook
                    • Partager sur Twitter

                    afficher l'adresse d'une variable

                    × 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