So I can read from a global variable
def f() :
print x
And I can also assign it
def g()
global x
x = 3
Global variables can be changed and access from nearly everywhere. This includes maybe colliding namespace and assignments,where you don't want to have them.
To give an example:
def someFunction():
global myVar
myVar = "fuuu"
print myVar
myVar = "baa"
f()
print myVar
Will end in something like.
fuuu
fuuu
Whereas you might expected
fuuu
baa
So I'd say both variants are little dangerous.