Почему присвоение моим глобальным переменным не работает в Python?

У меня ужасные проблемы, пытаясь понять правила Python Scoping.

С помощью следующего скрипта:

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()

Дает неожиданный (для меня) вывод:

    Before setA
    Value of a is 7
    Inside setA, a is now 42
    After setA
    Value of a is 7

Где я ожидал бы, что последняя печать значения a будет 42, а не 7. Чего мне не хватает в правилах области видимости Python для определения области глобальных переменных?

Ответы на вопрос(5)

Ваш ответ на вопрос