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.
Considérez le code suivant :
done = False def function(): for loop: code if not comply: done = True while done == False: function()
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.
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.
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
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!