¿Por qué la asignación a mis variables globales no funciona en Python?
Tengo problemas terribles para tratar de entender las reglas de alcance de Python.
Con el siguiente script:
a = 7
def printA():
print "Value of a is %d" % (a)
def setA(value):
a = value
print "Inside setA, a is now %d" %(a)
print "Before setA"
printA()
setA(42)
print "After setA"
printA()
Da el resultado inesperado (para mí) de:
Before setA Value of a is 7 Inside setA, a is now 42 After setA Value of a is 7
Donde esperaría que la última impresión del valor de a sea 42, no 7. ¿Qué me estoy perdiendo acerca de las reglas de alcance de Python para el alcance de las variables globales?