1.在函数外定义:函数内外都可以访问,注意两点:
(1)在函数内企图直接修改全局变量的值,报错
#全局变量,函数外定义,函数内 a=10 def demo5(): a+=10 print "函数内",a demo5() print "函数外",a #结果 Traceback (most recent call last): File "C:Python27print1.py", line 122, in <module> demo5() File "C:Python27print1.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