Python中的全局变量和局部变量

当局部变量和全局变量名字一样时,依然是不同的变量,但是值一样时,地址依然一样。值不一样时,地址不一样,修改局部变量,全局变量的值依然不变,例如:

num = 100

def test():
    num = 99
    print("局部变量num的值:%d,地址为:%d" % (num, id(num)))

test()
print("全局变量num的值:%d,地址为:%d" % (num, id(num)))

输出:
局部变量num的值:99,地址为:492861520
全局变量num的值:100,地址为:492861552

Python中,当全局变量和局部变量的名字一样时,函数内会优先使用局部变量的值,函数内也没办法直接修改全局变量的值。如果要在局部变量中修改全局变量的值时,修改成如下代码:

num = 100

def test():
    global num  #告诉解释器num是全局变量
    num = 99
    print("局部变量num的值:%d,地址为:%d" % (num, id(num)))

test()
print("全局变量num的值:%d,地址为:%d" % (num, id(num)))

输出:
局部变量num的值:99,地址为:492861520
全局变量num的值:99,地址为:492861520

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/82947439