1.在函數外定義:函數內外都可以訪問,注意兩點:
(1)在函數內企圖直接修改全局變量的值,報錯
#全局變量,函數外定義,函數內 a=10 def demo5(): a+=10 print "函數內",a demo5() print "函數外",a #結果 Traceback (most recent call last): File "C:\Python27\print1.py", line 122, in <module> demo5() File "C:\Python27\print1.py", line 119, in demo5 a+=10 UnboundLocalError: local variable 'a' referenced before assignment >>>
(2)在函數內定義同名的局部變量,企圖修改值,修改的是函數內的變量,不影響全局變量的值
#全局變量,函數外定義,函數內 a=10 def demo5(): a=100 a+=3 print "函數內",a demo5() print "函數外",a #結果 函數內 103 函數外 10
2.函數內定義,用global關鍵字修飾,也是全局變量。這樣可以在函數內修改它的值。
#全局變量,函數內定義 a=10 def demo6(): global a a+=3 print "函數內",a demo6() print "函數外",a #結果 函數內 13 函數外 13
