Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de fontion...

problème lors de l'execution d'une fonction.

Sujet résolu
    28 mars 2015 à 11:53:16

    Bonjour, j'ai le code python suivant :

    var = 'This is a variable'
    def function():
    	var = 'This is a test.'
    function()
    print(var)

    Lorsque je lance le programme, j'obtiens var = 'This is a variable'.

    Pourquoi je n'obtiens pas var = 'This is a test.'  ?

    La fonction semble ne pas s'être exécutée. Pourtant, si je remplace function() par  

    var = 'This is a test.'  , 

    ça fonctionne... Merci de votre aide.




    -
    Edité par azerty2699 28 mars 2015 à 11:59:32

    • Partager sur Facebook
    • Partager sur Twitter
      28 mars 2015 à 12:07:37

      Bonjour,

      Il te faut savoir que quand tu défini var dans ta fonction, elle créer une nouvelle variable qui s'appelle aussi var.C'est à dire que tu a une variable var qui reste à l’intérieur de ta fonction : elle a une portée locale.

      Quand tu fait alors : 

      print(var)

      , cela va t’afficher la var d'avant ta fonction puisque celle qui est dans ta fonction est locale.

       Une solution, importer à l’intérieur de ta fonction la var = 'before' grâce a la commande global :

      var = 'before'
      
      def function():
          global var
          var = 'This is a test.'
          
      function()
      print(var)
      



       

      • Partager sur Facebook
      • Partager sur Twitter
        28 mars 2015 à 12:11:41

        Oui c'est vrai j'avais oublié ça... Merci.
        • Partager sur Facebook
        • Partager sur Twitter

        Problème de fontion...

        × 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