La création de fonctions sans paramètre ou argument + espaces de noms global et local

La création de fonctions sans paramètre ou argument + espaces de noms global et local

Il est possible qu’une portion de code qu’on utilise souvent soit « enfermée » dans une fonction. Cette dernière pourra être écrite dans un script. A l’exécution, il faudra l’appeler pour exécuter son bloc de code. Ici, après l’avoir créée dans l’interpréteur, je dois également l’appeler. Attention, une fonction constitute un espace de noms local. Après exécution, les espaces dans la mémoire vive qui lui ont été attribués sont vidés !!!! Nous avons travaillé jusqu’à présent dans l’espace de noms global, ce n’est plus le cas ici !!!!
Syntaxe : def fonction (argument(s)):
Ici, il n’y a pas d’argument(s) entre parenthèses

>>> def table_7 ( ):
	nbre = 7
	i = 1
	while i <= 10 :
		print (i, "X", nbre, "=", i*nbre)
		i = i + 1

		
>>> 
>>> table_7 ( )
1 X 7 = 7
2 X 7 = 14
3 X 7 = 21
4 X 7 = 28
5 X 7 = 35
6 X 7 = 42
7 X 7 = 49
8 X 7 = 56
9 X 7 = 63
10 X 7 = 70
>>> 

Le mot-clé global permet d’intégrer les variables d’une fonction dans l’espace de noms global. Ceci est à utiliser avec prudence, puisque pour cet exemple, global nbre peut écraser une variable portant le même nom dans l’espace global !!!!!

>>> def table_7 ( ):
	nbre = 7
	i = 1
	while i <= 10 :
		print (i, "X", nbre, "=", i*nbre)
		i = i + 1

		
>>> table_7 ()
1 X 7 = 7
2 X 7 = 14
3 X 7 = 21
4 X 7 = 28
5 X 7 = 35
6 X 7 = 42
7 X 7 = 49
8 X 7 = 56
9 X 7 = 63
10 X 7 = 70
>>> nbre
Traceback (most recent call last):
  File "", line 1, in 
    nbre
NameError: name 'nbre' is not defined
>>> def table_7 ( ):
	global nbre
	nbre = 7
	i = 1
	while i <= 10 :
		print (i, "X", nbre, "=", i*nbre)
		i = i + 1

		
>>> table_7 ()
1 X 7 = 7
2 X 7 = 14
3 X 7 = 21
4 X 7 = 28
5 X 7 = 35
6 X 7 = 42
7 X 7 = 49
8 X 7 = 56
9 X 7 = 63
10 X 7 = 70
>>> nbre
7
>>> 

L’erreur fatale !!!!!! La variable se trouvant déjà dans l’espace de noms global est écrasée !

>>> nbre = 23
>>> nbre
23
>>> def table_7 ( ):
	global nbre
	nbre = 7
	i = 1
	while i <= 10 :
		print (i, "X", nbre, "=", i*nbre)
		i = i + 1

		
>>> table_7 ()
1 X 7 = 7
2 X 7 = 14
3 X 7 = 21
4 X 7 = 28
5 X 7 = 35
6 X 7 = 42
7 X 7 = 49
8 X 7 = 56
9 X 7 = 63
10 X 7 = 70
>>> nbre
7
>>> 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *