Quand utiliser le mot-clé global pour les variables globales ?

Barbara Streisand
Libérer: 2024-10-19 12:23:02
original
386 Les gens l'ont consulté

When to Use the Global Keyword for Global Variables?

Portée des fonctions et variables globales

Lors de l'utilisation de fonctions en programmation, il est important de comprendre le concept de portée. Les fonctions créent leur propre espace de noms privé, distinct de la portée globale. Cela signifie que les variables déclarées dans une fonction ne sont accessibles qu'au sein de cette fonction.

Problème : la fonction ne modifie pas la variable globale

Considérez le code suivant :

done = False

def function():
    for loop:
        code
        if not comply:
            done = True

while done == False:
    function()
Copier après la connexion

L'intention de ce code consiste à quitter la boucle while lorsque done est défini sur True dans la fonction (). Cependant, le code ne quitte pas la boucle une fois que function() est défini sur True.

Pourquoi le problème se produit

Le problème survient parce que la variable effectuée dans la fonction() est une variable locale variable, créée dans l'espace de noms de la fonction. Elle est distincte de la variable globale done définie en dehors de la fonction. Lorsque la fonction() attribue une nouvelle valeur à done, elle modifie en fait la variable locale, pas la variable globale.

Solution : Utiliser global

Pour résoudre ce problème, vous devez utiliser le mot-clé global pour référencer explicitement la variable globale dans la fonction. Voici le code corrigé :

def function():
    global done
    for loop:
        code
        if not comply:
            done = True
Copier après la connexion

En utilisant global, vous vous assurez que la variable done à l'intérieur de la fonction fait référence à la même variable définie dans la portée globale. Cela vous permet de modifier la variable globale depuis la fonction.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!