L'uso delle variabili globali (non delle funzioni!) dovrebbe essere ridotto al minimo indispensabile, perché Python ha un ambito globale e uno locale, e l'uso di variabili globali (dichiarate nell'ambito globale) in un ambito locale è limitato alla sola lettura, a meno di non usare l'identificatore global.
Ad esempio (funzione con sole variabili locali):
def fun1(x):
x += 2
return x
La puoi richiamare da console con qualunque parametro numerico:
>>> fun1(5)
7
Se scegli le variabili globali (funzione con sole variabili globali):
x = 15
def fun2():
global x
x += 2
return x
Con il risultato che a ogni chiamata di fun2() x viene incrementata di 2...
>>>fun2()
17
>>> fun2()
19
A meno di non usare una versione diversa (funzione con variabili globali e locali):
x = 15
def fun3():
y = x
y += 2
return y
che però è più simile alla versione con sole variabili locali. Inoltre una funzione che usa variabili globali non può essere importata in un altro modulo (a meno di non ricreare anche le variabili globali).