trying to assign a global variable in a function will result in the function creating a new variable with that name even if theres a global one. ensure to declare a as global in the function before any assignment.  a = 7 def setA(value):     global a   # declare a to be a global     a = value  # this sets the global value of a

Read more of this post