La portée d'une variable fait référence à la zone où une variable peut être valide, car lorsque nous utilisons une fonction, certaines variables sont définies dans le programme principal, et d'autres sont définies dans la fonction appelée lorsque notre programme principal utilise la fonction lors de la définition. une variable, une exception se produit. Introduisons les variables locales et les variables globales.
Les variables locales, comme leur nom l'indique, sont des variables qui agissent dans une zone locale. Si une variable est définie dans une fonction, elle ne fonctionnera que dans la fonction. Si une variable à l'intérieur de la fonction est utilisée en dehors de la fonction, une exception se produira. .
Regardez l'exemple suivant :
deftest():data='variable locale'print('Données de sortie à l'intérieur de la fonction :',data)test()print('Données de sortie dans le programme principal :',data)
Le résultat est :
La sortie des données à l'intérieur de la fonction est : variable locale Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled/venv/Include/ts.py,line6,in<module>print('Données de sortie dans le programme principal : ', data)NameError : le nom 'data' n'est pas défini
Étant donné que les données variables sont définies à l'intérieur de la fonction, lorsque nous utilisons les données variables dans le programme principal, il y aura un problème car la variable à laquelle on accède n'existe pas. Par conséquent, nous devons faire attention au fait que les variables définies à l'intérieur de la fonction. Les fonctions sont des variables locales, sauf indication contraire, elles ne seront pas accessibles en dehors des fonctions.
Nous pouvons également comprendre les variables globales au sens littéral selon lequel ce sont des variables qui agissent globalement. Certains étudiants peuvent naturellement penser que les variables globales doivent être des variables définies dans le programme principal. En fait, les variables globales peuvent également agir dans des fonctions. deux façons d'utiliser les variables globales :
La portée des variables que nous définissons dans le programme principal est globale, et nous pouvons également utiliser ces variables directement dans les fonctions définies. Voir l'exemple suivant :
data='Variable globale data'deftest():print('Ceci est une variable globale qui agit dans la fonction :',data)test()print('Ceci est une variable globale qui agit en dehors de la fonction :',data)
Résultat de sortie :
C'est la variable globale qui agit dans la fonction : variable globale data C'est la variable globale qui agit en dehors de la fonction : variable globale data
Cette méthode est la variable globale que nous utilisons habituellement. Les variables que nous définissons dans le programme principal peuvent être utilisées directement dans la fonction.
Les variables que nous définissons dans la fonction peuvent également être programmées comme variables globales. À ce stade, nous devons utiliser le mot-clé global.
Tout d'abord, examinons ce qui se passe lorsque les noms des variables globales et des variables locales sont identiques. Jetez un œil à l'exemple suivant :
data='Voici la variable globale data'print(data)deftest():data='Voici la variable locale data'print(data)test()print('Vérifiez à nouveau la variable globale data :',data)
Le résultat est :
Voici les données de la variable globale. Voici les données de la variable locale. Vérifiez à nouveau les données de la variable globale : Voici les données de la variable globale.
À partir de cet exemple, nous pouvons voir que lorsque les noms des variables globales et des variables locales sont les mêmes, cela n'affecte pas le contenu de la variable globale, mais si nous voulons modifier la valeur de la variable globale dans la fonction, alors nous devez utiliser le mot-clé global.
Regardez à nouveau l'exemple suivant :
data='Voici la variable globale data'print(data)deftest():globaldatadata='Voici la variable locale data'print(data)test()print('Vérifiez à nouveau la variable globale data :',data)
Le résultat est :
Voici les données de la variable globale. Voici les données de la variable locale. Vérifiez à nouveau les données de la variable globale : Voici les données de la variable locale.
Grâce au mot-clé global, la déclaration locale indique à la fonction que global est une variable globale. Après modification, toutes les variables du global sont modifiées. Le mot-clé global peut faire d'une variable une variable globale.
Lorsqu'il n'y a pas de variable déclarée globalement, nous pouvons également utiliser le mot-clé global localement pour déclarer directement une variable comme variable globale. Ensuite, les variables que nous définissons dans la fonction peuvent également être utilisées dans le programme principal.
deftest():globaldatadata='Ceci sont les données variables créées localement'print('Ceci est la sortie dans la fonction :',data)test()print('Ceci est la sortie dans le programme principal :',data)
Le résultat est :
Voici la sortie dans la fonction : Ceci sont les données variables créées localement. Voici la sortie dans le programme principal : Ce sont les données variables créées localement.
Grâce à l'exemple ci-dessus, nous pouvons comprendre le rôle du mot-clé global dans le contrôle des variables globales. De plus, nous devons faire attention à éviter que les noms des variables globales et des variables locales soient les mêmes lors de l'écriture de programmes, bien qu'elles agissent de manière différente. domaines, ils affecteront l’interaction entre eux. C'est tout pour cette section. Découvrons les fonctions anonymes dans la section suivante.