def say_boo_twice():
global boo
boo = 'Boo!'
print boo, boo
say_boo_twice()
print "outside the function: " + boo #works
鉴于:
def say_boo_twice():
#global boo
boo = 'Boo!'
print boo, boo
say_boo_twice()
print "outside the function: " + boo # ERROR. boo is only known inside function, not to this scope
在将boo声明为global之后,您将重新分配它,因此该值是最后一个分配给它的值。如果删除第三行,将得到预期的输出。
因为你要提前重新分配。注释掉
boo = 'Boo!'
,您将得到所描述的内容。而且
global boo
是不必要的,boo
已经在全局范围内。 这就是global
起作用的地方鉴于:
你已经改变了函数内部的
boo
,为什么它不改变呢?而且,全局变量也不好。相关问题 更多 >
编程相关推荐