A=[]
def main():
global A
A=[1,2,3,4,5]
b()
def b():
if(len(A)>0):
A=[7,8,9]
else:
if(A[3]==4):
A.remove(2)
main()
此代碼給出錯誤行A.remove(2)給出的理由:「UnboundLocalError:轉讓前‘A’引用的局部變量」全局變量的Python
但名單是全球性的,並肯定它有已在main()函數中初始化。請解釋爲什麼這會給出錯誤?
由於A在b函數中已經被初始化了,這會導致錯誤嗎?
工作對我蠻好,關於Python 3.4.3和Python 2.7.12。 – Li357
無法重現。對我來說工作得很好,Python 3.5。這是你的真實代碼嗎?因爲你的真實代碼中可能存在某些東西,你認爲*並不會導致實際的問題。 – idjaw
在python 2.7,3.5上工作 – Juggernaut