使用下面的代码
def A():
print "in A"
def B():
global x
x += 1
y += 1
print "in B"
x = 0
y = 0
print x, y
B()
print x, y
if __name__ == '__main__':
A()
我得到以下输出和错误
in A
0 0
NameError: global name 'x' is not defined
使用全局的正确方法是什么?实际上,我正在尝试更改子函数 B 中的 x 并将其返回给 A。还尝试检查非全局 y,并查看外部函数中发生了什么。
从 Haidro 给出的提示中得到它
def A():
print "in A"
def B():
global x
x += 1
y = 1
print "in B"
global x
x = 0
y = 0
print x, y
B()
print x, y