本人目前剛學習python, 遇到了關于變量作用域的一些問題, 如下:下面這個就不是非常明白a = 3def f():
a += 4
print(a)
f() # UnboundLocalError: local variable 'a' referenced before assignment然后如果稍微改一下:a = 3def f():
b = a + 4
print(a)
f() # 3這里新聲明了一個變量b, 對a進行了引用, 然后就可以訪問到a了, 不是明白為什么另外如果將代碼 1 換成js, 結果又不同var a = 3const f = () => { a += 4
console.log(a)
}a() // 7f() // 7在js中不僅僅能夠訪問到全局變量, 甚至可以對全局變量進行修改, 所以在js里面作用域機制和python又有什么區別?另外, 本人所了解到js與python都是靜態作用域, 原理應該相同, 但是上面顯示的結果卻很不一樣, 麻煩能有前輩清楚的解答一下, 本人才學疏淺, 見諒!
python 和 js 變量作用域問題的不理解
桃花長相依
2018-08-03 15:48:12