Maison >développement back-end >Tutoriel Python >Comment les fonctions affectent-elles les variables globales ? Démystifier la portée et les interactions
Lorsque vous travaillez avec des fonctions et des variables globales, il est crucial de comprendre comment leur portée et leurs interactions affectent le comportement de votre code. Examinons un cas spécifique où une fonction semble ne pas parvenir à mettre à jour une variable globale, ce qui entraîne des résultats inattendus.
Considérez le code suivant :
<code class="python">done = False def function(): for loop: code if not comply: done = True # Let's assume the code enters this if-statement while done == False: function()</code>
Comme vous l'avez remarqué, ceci le code continue d'exécuter function() même après avoir défini done sur True. La raison en est que la fonction() crée son propre espace de noms local et que toutes les modifications apportées aux variables au sein de cette fonction ne sont pas propagées à la portée globale. Pour utiliser la variable globale done, vous devez déclarer explicitement sa nature globale au sein de la fonction à l'aide du mot-clé global :
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
En incorporant le mot-clé global, vous établissez un lien entre la variable globale et son local homologue au sein de la fonction. Par conséquent, toute modification apportée à done dans la fonction sera reflétée directement dans la portée globale, provoquant la sortie de la boucle while lorsque done devient True.
En revanche, dans cet exemple :
<code class="python">done = False while done == False: for loop: code if not comply: done = True # Let's assume the code enters this if-statement</code>
la variable done est définie dans la portée de la boucle while et n'est donc pas affectée par la variable done définie en dehors de la boucle. Par conséquent, la boucle while se terminera comme prévu lorsque done est défini sur True dans la portée de la boucle.
Comprendre la portée des variables et les effets des fonctions sur les variables globales est essentiel pour écrire du code robuste et prévisible. N'oubliez jamais d'examiner attentivement la façon dont vos fonctions interagissent avec les variables globales et d'utiliser le mot-clé global judicieusement pour vous assurer que les modifications apportées au sein des fonctions sont propagées à la portée globale comme prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!