Variables globales Python sont ceux qui ne sont définis dans aucune fonction et ont une portée globale alors que Python variables locales sont ceux qui sont définis à l’intérieur d’une fonction et leur portée est limitée à cette fonction uniquement. En d'autres termes, on peut dire que les variables locales ne sont accessibles qu'à l'intérieur de la fonction dans laquelle elles ont été initialisées alors que les variables globales sont accessibles dans tout le programme et dans chaque fonction.
Variables locales Python
Les variables locales en Python sont celles qui sont initialisées à l'intérieur d'une fonction et appartiennent uniquement à cette fonction particulière. Il n’est accessible nulle part en dehors de la fonction. Voyons comment créer une variable locale.
Création de variables locales en Python
Définir et accéder aux variables locales
Python3
def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()> |
>
>Sortir
I love Geeksforgeeks>
Une variable locale peut-elle être utilisée en dehors d’une fonction ?
Si nous essayons d’utiliser cette variable locale en dehors de la fonction, voyons ce qui se passera.
multiplexage
Python3
def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)> |
>
>
Sortir:
NameError : name 's' is not defined>
Variables globales Python
Ce sont ceux qui sont définis en dehors de toute fonction et qui sont accessibles dans tout le programme, c'est à dire à l'intérieur et à l'extérieur de chaque fonction. Voyons comment créer une variable globale Python.
Créer une variable globale en Python
Définir et accéder aux variables globales Python.
Python3
# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)> |
>
parcourir la carte Java
>Sortir
tuple python trié
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>
La variable s est définie comme variable globale et est utilisée à la fois à l'intérieur et à l'extérieur de la fonction.
Note: Comme il n'y a pas de variables locales, la valeur des variables globales sera utilisée, mais assurez-vous que les variables locales et globales doivent avoir le même nom.
Pourquoi utilisons-nous des variables locales et globales en Python ?
Maintenant, que se passe-t-il s’il existe une variable Python portant le même nom initialisée à l’intérieur d’une fonction ainsi que globalement ? Maintenant, la question se pose : la variable locale aura-t-elle un effet sur la variable globale ou vice versa, et que se passera-t-il si nous modifions la valeur d'une variable à l'intérieur de la fonction f() ? Cela affectera-t-il également les planètes ? Nous le testons dans le morceau de code suivant :
Exemple
Si une variable portant le même nom est également définie dans la portée de la fonction, elle imprimera uniquement la valeur donnée à l'intérieur de la fonction et non la valeur globale.
Python3
# This function has a variable with> # name same as s.> def> f():> >s>=> 'Me too.'> >print>(s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(s)> |
>
>Sortir
Me too. I love Geeksforgeeks>
Maintenant, que se passe-t-il si nous essayons de modifier la valeur d’une variable globale à l’intérieur de la fonction ? Voyons cela en utilisant l'exemple ci-dessous.
Python3
cartographie en dactylographié
# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> |
>
>
Sortir:
UnboundLocalError : local variable 's' referenced before assignment>
Pour faire fonctionner le programme ci-dessus, nous devons utiliser le mot-clé global en Python. Voyons quel est ce mot-clé global.
Le mot-clé global
Il nous suffit d'utiliser le mot clé global dans une fonction si nous voulons faire des affectations ou changer la variable globale. global n’est pas nécessaire pour l’impression et l’accès. Python suppose que nous voulons une variable locale en raison de l'affectation à s à l'intérieur de f(), donc la première instruction renvoie le message d'erreur. Toute variable modifiée ou créée à l'intérieur d'une fonction est locale si elle n'a pas été déclarée comme variable globale. Pour dire à Python que nous voulons utiliser la variable globale, nous devons utiliser le mot-clé mondial , comme le montre l'exemple suivant :
Exemple 1: Utilisation du mot-clé global Python
Python3
# This function modifies the global variable 's'> def> f():> >global> s> >s>+>=> ' GFG'> >print>(s)> >s>=> 'Look for Geeksforgeeks Python Section'> >print>(s)> # Global Scope> s>=> 'Python is great!'> f()> print>(s)> |
>
>Sortir
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>
Désormais, il n'y a plus d'ambiguïté.
Exemple 2 : Utilisation de variables globales et locales Python
Python3
enveloppe de texte CSS
a>=> 1> # Uses global because there is no local 'a'> def> f():> >print>(>'Inside f() : '>, a)> # Variable 'a' is redefined as a local> def> g():> >a>=> 2> >print>(>'Inside g() : '>, a)> # Uses global keyword to modify global 'a'> def> h():> >global> a> >a>=> 3> >print>(>'Inside h() : '>, a)> # Global scope> print>(>'global : '>, a)> f()> print>(>'global : '>, a)> g()> print>(>'global : '>, a)> h()> print>(>'global : '>, a)> |
>
>Sortir
global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>
Différence n/b variable locale vs. Variables globales
| Base de comparaison | Variable globale | Variable locale |
| Définition | déclaré en dehors des fonctions | déclaré dans les fonctions |
| Durée de vie | Ils sont créés au début de l'exécution du programme et sont perdus à la fin du programme. | Ils sont créés lorsque la fonction démarre son exécution et sont perdus à la fin de la fonction. |
| Partage de données | Offre le partage de données | Il n'offre pas de partage de données |
| Portée | Peut être accessible tout au long du code | Peut accéder uniquement à l'intérieur de la fonction |
| Paramètres nécessaires | le passage de paramètres n'est pas nécessaire | le passage des paramètres est nécessaire |
| Stockage | Un emplacement fixe sélectionné par le compilateur | Ils sont conservés sur la pile |
| Valeur | Une fois que la valeur change, elle est reflétée dans tout le code | une fois modifiée, la variable n'affecte pas les autres fonctions du programme |