为什么在Python中给我的全局变量赋值不起作用?

32 浏览
0 Comments

为什么在Python中给我的全局变量赋值不起作用?

我在尝试理解Python的作用域规则方面遇到了很大的困难。

使用以下脚本:

a = 7
def printA():
    print "a的值为%d" % (a)
def setA(value):
    a = value
    print "在setA内部,a现在为%d" %(a)
print "在setA之前"
printA()
setA(42)
print "在setA之后"
printA()

给出了我意外的输出结果:

在setA之前

a的值为7

在setA内部,a现在为42

在setA之后

a的值为7

我希望最后一次打印a的值为42,而不是7。我对Python关于全局变量作用域规则的理解有什么遗漏吗?

0