Python 中,一個變量的做用域老是由在代碼中被賦值的地方所決定的。python
hehe=6 def f(): print(hehe) f() print(hehe)
上述代碼能夠正常運行且輸出爲6和6函數
hehe=6 def f(): print(hehe) hehe=2 f() print(hehe)
拋出的錯誤信息爲:spa
hehe=6 def f(): hehe=2 print(hehe) f() print(hehe)
上述輸出是2和6,也即f函數中print使用的是局部變量hehe,而最後一個print語句使用的全局hehe。.net
hehe=6 def f(): global hehe print(hehe) hehe=3 f() print(hehe)
在用global修飾符聲明hehe是全局變量的hehe後(注意,global語句不容許同時進行賦值如global hehe=3是不容許的),上述輸出是6和3,獲得了咱們想要的效果。code