以下のコードで
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