首页 > 技术文章 > python全局变量

josie-xu 2019-03-01 12:52 原文

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

 

推荐阅读