>>> 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 !