Les variables locales et globales dans une fonction
>>> def exemple ( ) : a = 5 print (a) >>> exemple ( ) 5 >>> a Traceback (most recent call last): File "<pyshell#37>", line 1, in a NameError: name 'a' is not defined >>> def exemple ( ) : a = 5 return a >>> exemple ( ) 5 >>> a Traceback (most recent call last): File "<pyshell#41>", line 1, in a NameError: name 'a' is not defined >>> def exemple ( ) : a = 5 return a >>> b = exemple ( ) >>> b 5 >>> a Traceback (most recent call last): File "<pyshell#46>", line 1, in a NameError: name 'a' is not defined >>> b 5 >>> def exemple ( ) : global a a = 5 return a >>> exemple ( ) 5 >>> a 5 >>>
Voyez ce qui se passe lorsqu’on assigne la valeur exemple () à la variable b !
>>> var = 5 >>> def plus2 ( ) : global var var = var + 2 >>> var 5 >>> plus2 ( ) >>> var 7 >>> plus2 ( ) >>> var 9 >>>
Faites très attention lorsque vous passez une variable de espace de noms local d’une fonction à l’espace de noms global ! Ici la variable var de la fonction écrase la variable var de l’espace global !