为什么在Python中给我的全局变量赋值不起作用?
- 论坛
- 为什么在Python中给我的全局变量赋值不起作用?
32 浏览
为什么在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关于全局变量作用域规则的理解有什么遗漏吗?