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
你不應該完全清楚你要去哪裏,但是應該避免使用IMO'global'。 – NPE
什麼是取代全球的最佳方式?作爲參數傳入? – twfx
@twfx使用一個類。檢查我的答案:)(底部) – TerryA