Espace global et local

Inscris-toi

(c'est gratuit !)

Un compte est nécessaire pour participer aux discussions.

Créer un compte

Toutes les questions

madem

15 mai 2025

Résolue
3 réponses

Espaces locaux et portée des variables

Du coup ça veut dire qu'on peut avoir plusieurs espaces locaux, chacun étant locaux à une fonction précise ? ```python def func1(): a = 2 print(f"f1 : {a}") def func2(): print(f"f2 : {a}") func2() a = 1 func1() ``` La on est bien d'accord que j'ai : * **espace global** dans lequel `a` vaut 1 * **espace local de la fonction** `func1` dans lequel `a` vaut 2 * **espace local de la fonction** `func2` dans lequel `a` n'existe pas. C'est ça ?

Baptiste KUMALA

14 novembre 2024

Résolue
1 réponse

Accès aux variables dans les fonctions imbriquées

Bonjour, je me posais la question suivante. Si je définis 3 fonctions imbriquées, on va dire f1, f2 et f3 comme ci : ``` f1 f2 f3 ``` Est-ce que la fonction f3 a accès aux variables définies en f2 et f1 ? Merci

Espace global et local

Les variables qui sont définies à l'intérieur d'une fonction appartiennent uniquement à la fonction.

def fonction():
    a = 10

a = 5

Dans cet exemple, on a une fonction dans laquelle on assigne la valeur 10 à la variable a, et en dehors de la fonction, on assigne la valeur 5 à la variable a.

Si par la suite on appelle la fonction et qu'on affiche la valeur de a avec print, vous voyez que la valeur n'a pas changé malgré l'assignation que l'on fait dans la fonction.

>>> fonction()
>>> print(a)
5

Donc a est toujours égale à 5, on ne l'a pas modifiée.

La notion abordée ici est la notion d'espaces.

Espace global

Par défaut, quand on écrit une ligne dans notre script, on dit qu'on est dans l'espace global.

Dans l'exemple précédent, l'espace global correspond à la fonction exemple et à la variable a.

Dans l'espace global du script, on peut faire un print de la variable a ou appeler la fonction exemple sans provoquer d'erreur : Python ne va pas nous dire que cette variable n'est pas définie.

Espace local

À l'intérieur de la fonction exemple, on crée un autre espace, local à la fonction. On parle d'espace local.

Les variables créées à l'intérieur de cet espace ne sont accessibles qu'à l'intérieur de la fonction, donc à l'intérieur de cet espace local.

def exemple():
    b = 5

a = 5

Dans le code ci-dessus, à l'intérieur de la fonction exemple, on peut sans problème écrire print(b), ce qui va afficher le nombre 5. Par contre, si on essaye de faire print(b) en dehors de la fonction exemple, il y aura une erreur car b n'existe qu'à l'intérieur de la fonction. En dehors de la fonction, b n'est pas définie.

L'inverse, en revanche, est possible. Une variable qui est définie dans l'espace global est accessible à l'intérieur d'une fonction.

À l'intérieur de la fonction exemple, je peux accéder à la variable a même si elle est définie à l'extérieur de cette même fonction, et la valeur 5 sera bien affichée.

!!!warning
Si on reprend l'exemple du début, si on assigne une valeur à la variable a à l'intérieur de la fonction, on n'écrase pas la variable globale. On crée simplement une variable locale qui se retrouve à avoir le même nom que la variable dans l'espace global, mais il s'agit bien de deux variables différentes, une variable locale à la fonction et une variable globale au script.
!!!

Pour résumer

  • Il y a obligatoirement un espace global : dès qu'on écrit une ligne de code, elle est obligatoirement dans cet espace global

  • On peut par la suite créer plusieurs espaces locaux : si on crée plusieurs fonctions, elles vont chacune avoir leur espace local

  • Les variables définies à l'intérieur d'une fonction ne sont pas disponibles en dehors de la fonction.

  • On peut accéder à une variable globale, définie à l'extérieur de la fonction, à l'intérieur des fonctions.

Les prochaines parties comportent plusieurs quizz et exercices qui vont vous permettre de tester cette notion d'espaces en vous montrant ce que vous pouvez faire avec les variables, et comment elles sont définies à l'intérieur de ces différents espaces.

Ce n'est pas fini...

Tu as complété % du parcours 🔥

Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.

Rechercher sur le site

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.