DAIGL – Développement – Fonctions et procédures
4- Variables locales et variables globales
[Généralités]
Une variable définie au sein d'une procédure ou d'une fonction est dite locale car sa valeur n'est
définie qu'au sein de la procédure ou de la fonction. On ne peut donc pas utiliser cette variable en
dehors de la procédure ou de la fonction dans laquelle elle est définie.
Une variable définie au sein de l'algorithme du programme principal est elle aussi locale car elle n'est
connue que dans l'algorithme principal (elle n'est pas connue des procédures et fonctions).
Il est parfois nécessaire de déclarer dans certaines situations des variables qui seront connues de tous
les algorithmes (programme principal + fonctions + procédures) du programme. De telles variables
sont appelées variables globales. Les variables globales se déclarent en début d'algorithme en ajoutant
au mot clé Variable le mot clé Globale.
Toutefois, dans une procédure ou une fonction, si une variable locale porte le même nom qu'une
variable globale, c'est la variable locale qui est utilisée (la variable locale est prioritaire par rapport à
la variable globale).
variable locale variable globale
Durée de vie
égale au temps d'exécution de la
fonction ou de la procédure dans
laquelle est elle déclarée.
égale au temps d'exécution du
programme.
Visibilité
n'est vue (et n'est accessible) que
dans le fonction ou la procédure
dans laquelle elle est déclarée.
accessible dans tout le
programme que ce soit dans le
programme principal, dans une
fonction ou encore dans une
procédure.
[Algo] La déclaration d'une ou plusieurs variables globales se fait après la déclaration des constantes et
avant la déclaration des variables locales du programme principale :
Algo titre_algorithme # Algorithme principal
Constante(s) :
# déclaration des constantes
Variable(s) globale(s) :
# déclaration des variables globales
Variable(s) :
# déclaration des variables locales de l'algorithme principal
Début
# instructions
Fin
[Python] Au sein d'un script Python, la portée des variables est déterminée selon les trois cas
suivants :
Cas 1 - Accès en lecture
Par défaut, une variable utilisée dans un programme Python est visible dans toutes les fonctions
déclarées dans le même bloc. Dans le cas où dans une fonction, cette variable n'est accédée qu'en
lecture (affichage, opérande dans un calcul...), il s'agit de la même zone mémoire, et donc de la même
variable. Mais celle ci est accessible uniquement en lecture.
Exemple :
Code source : cas1.py Trace d'exécution
def typeDeFruit() :
print "Dans la fonction :",fruit
if __name__ == "__main__" :
fruit = "fraise"
print "Avant l'appel :",fruit
typeDeFruit()
print u"Après l'appel :",fruit
$ python cas1.py
Avant l'appel : fraise
Dans la fonction : fraise
Après l'appel : fraise