Interesting - I can read from the variable but I can't assign to it.
This means that in the following code, "x" will refer to a local variable for the whole function body:
x = "foo"
def f():
print(x)
x = 42
f()
...so instead of printing "foo" (the value of the global variable) the print statement will raise an exception: UnboundLocalError: local variable 'x' referenced before assignment
If you meant it to refer to a global variable or something in the parent scope, simply put "global x" or "nonlocal x", respectively, at the start of the function. Again, that applies to the whole function body, so the assignment in this example would change the value of the global variable.